Skip to main content

Crate choir_actor

Crate choir_actor 

Source
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.
SequencerActor
One repo’s sequencer, hosted on the Rivet runtime.
SubmitOp
Submit one op for ordering (the analogue of SequencerHandle::try_submit).
SubmitReply
The sequencer’s acknowledgement.

Functions§

register
Registers the sequencer under its canonical actor name.