MutableFlowStore
Read/write view of a store-backed map. Every mutation takes the caller's transaction handle T: the write is enlisted on it through StoreWriter, which assigns the version, and the cache update and delta are published only when that transaction commits.
The owner must serialise writes to a given key (single-writer-per-key): the version is the store's commit order, so unserialised concurrent writes to one key would settle on the wrong version. Serialise at the transaction layer — a locking read such as SELECT … FOR UPDATE via Store.load, held across the transaction — not an in-process lock, which orders the calls but not the commits. V must be an aggregate root — see FlowStore.
Properties
A suspending view of this store whose AsyncFlowStore.get dispatches the read-through itself.
Functions
The live, delta-only stream of versioned mutations.
A get-and-subscribe view: emits the entries query loads now (as VersionedMapEvent.Upsert), then follows the live stream, version-gated per key so the snapshot and the tail never conflict. query is the bulk current state (key to value+version); it runs blocking on the store's dispatcher and is not written to the cache. predicate scopes the live tail to the same logical set: a live upsert that matches enters or updates the view, one that stops matching leaves it as a VersionedMapEvent.Removed, and removals forward only for keys in the view. query and predicate must agree (query = current rows matching predicate).