Part of my code is designed so that multiple jobs can safely write to the same DynamicBuffer, at different indices. Then later, a different job reads from that same DynamicBuffer and processes everything that’s been added. the problem is knowing how to control dependencies in this situation. How can I make sure the ‘reading’ job runs after all of the parallel ‘writing jobs’ have completed? the only way I know to let multiple jobs write to a NativeCollection is by disabling safety checks completely with the [NativeDisableContainerSafetyRestriction] attribute. But in that case, there's nothing to instruct the later 'reading' job to wait for the 'writing' jobs to run first. The only way I know around this is to use a pattern similar to what EntityCommandBufferSystem uses, and have the 'writing' systems all register their JobHandle dependencies with the 'reading' job's System, using a 'AddJobHandleForProducer()'-like function. But since this registering is happening on the main thread, it can be quite slow. I would love to know if there is a better way to do this. For example, it would be great if I could add a [WriteOnly] attribute to the the DynamicBuffer in all of the 'writing' jobs. Then add a [ReadOnly] attribute to the same DB in the later 'reading' job, and have the scheduling system understand that all the writing should complete first. But I don't believe it works that way. Please let me know if I'm missing anything. Thank you very much for any advice.