Cross collection transactions?
Since its in-memory would it be possible to have single TX across multiple collections? For example in your grid/movement ecs example it would make sense to be able to update both as a single transaction.
Especially for ECS semantics a system generally has full control on the state and the TX semantics are at a different level.
I think allowing cross-collection transactions could be possible with some tweaks to the structure of the transaction pool, however, I feel like maintaining consistency in a collection across multiple cross-collection transactions would require a very pessimistic approach (and therefore not performant). We'd need something like timestamp-based concurrency control, or maybe a special copy-on-write implementation for the columns.