symfonic.memory.backends.in_memory_committed¶
in_memory_committed ¶
Opt-in, graph-only committed reads over the exact InMemory reference.
Serving reads wait for transaction outcome and return detached values. Transaction readback is deliberately private and explicit. Compose every serving graph port over this SAME wrapper instance: raw/wrapped domains are different, and direct backend reads remain outside this contract. This does not authorize Working POST, prove session ownership, or offer crash durability.
CommittedInMemoryGraph ¶
Static GraphBackend surface; unknown extensions fail closed.
Single calls are isolated, not a multi-call application snapshot. Wrap a composed read in committed_read() for a stable view. It is read-only; entering a write transaction inside it is rejected instead of deadlocking. Tasks inheriting a read view are refused even after that view exits: start serving tasks outside readback/grouped views. This conservative reference serializes readers as well as writers; it is not a production throughput claim.
Source code in src/symfonic/memory/backends/in_memory_committed.py
committed_read
async
¶
One same-task read-only view; transaction-local serving is refused.
Source code in src/symfonic/memory/backends/in_memory_committed.py
confirm_privacy_subtree_absent
async
¶
Read all graph-owned privacy rows in the committed view, without relocking.
Source code in src/symfonic/memory/backends/in_memory_committed.py
private_transaction_read
async
¶
Explicit own-transaction readback, never default serving admission.
An inherited context alone cannot admit a child task. This view must be entered by a task owning this wrapper's transaction, and remains read-only. It intentionally observes its own uncommitted writes.
Source code in src/symfonic/memory/backends/in_memory_committed.py
transaction
async
¶
Yield only this wrapper; never expose the underlying backend.