symfonic.memory.backends.mongo_operation_journal¶
mongo_operation_journal ¶
Opt-in majority-durable Mongo Agent journal; no public Agent admission. Pass an authenticated encryption collaborator with encrypt(bytes)->bytes and decrypt(bytes)->bytes (for example Fernet/MultiFernet). Keys are externally owned; retain old decryption keys across rotation. Ambiguous storage fails closed.
MongoOperationJournal ¶
One owned client, first-owner claim and atomic owner/revision CAS.
A complete checkpoint is encrypted with its claim and phase binding. Prepare persists an opaque operation and requires that exact checkpoint. Receipt reconciliation is separate: UNKNOWN never permits body replay.
Source code in src/symfonic/memory/backends/mongo_operation_journal.py
has_invocation
async
¶
Read-only exact-identity check before a host issues a recovery handle.
An existing ID with a different request is a binding refusal, not absence.
Source code in src/symfonic/memory/backends/mongo_operation_journal.py
verify_owner
async
¶
Majority-read exact ownership; no write retry or revision advance.