Expand description
Rivet-backed sequencer: the second implementation of the actor-runtime seam (DECISIONS.md D3).
The in-process choir_sequencer gets its single-writer guarantee
from owning an OS thread; here the same guarantee comes from Rivet’s
actor model — one SequencerActor instance per repo, actions
serialized by the runtime, state persisted by the engine. The seam
contract is behavioral: total order, hash chain, per-client FIFO —
proven by tests/conformance.rs, the same properties the in-process
implementation’s tests assert.
§Where this sits
docs/architecture.md is the map of the whole workspace.
This crate is the second implementation of the actor-runtime seam (D3), on Rivet; it exists so the seam has two implementations passing one conformance suite.
It builds on choir_oplog.
Structs§
- DumpLog
- Fetch the full ordered log (conformance verification; a production reader would page or subscribe instead).
- LogState
- Persisted actor state: the op log entries in order. Rivet owns
durability; the hash chain (each entry’s
parent) stays verifiable independently of the runtime, per the D16 one-way-door rule. - Sequencer
Actor - One repo’s sequencer, hosted on the Rivet runtime.
- Submit
Op - Submit one op for ordering (the analogue of
SequencerHandle::try_submit). - Submit
Reply - The sequencer’s acknowledgement.
Functions§
- register
- Registers the sequencer under its canonical actor name.