Skip to main content

Crate tsoracle_consensus

Crate tsoracle_consensus 

Source
Expand description

§tsoracle-consensus

The ConsensusDriver trait — the single pluggable extension point for HA and durable persistence in tsoracle.

Implement this trait against your preferred mechanism (openraft, raft-rs, etcd, a single-node file, …) and you can host the tsoracle server on it. The library itself does not run consensus; it consumes whatever you wire into the trait.

§What’s in the box

  • ConsensusDriver — the three-method trait the server calls into: leadership_events, load_high_water, persist_high_water. About fifty lines of trait surface.
  • LeaderState — the role-class enum the driver’s leadership_events stream carries (Leader / Follower / Candidate / NoLeader).
  • ConsensusError — the error type all three trait methods return.

§Documentation

  • docs/consensus-integration.md — the trait reference: contract for each method, per-driver implementation recipes, a worked example (openraft), the “Choosing a driver” comparison, and the single-leader requirement explained.

§Existing impls in this workspace

If you want a ready-made driver rather than implementing one yourself:

§Feature flags

  • serde — derives Serialize / Deserialize on the public types so they cross wire and storage boundaries cleanly. Propagates to tsoracle-core.
  • bt — enables backtrace capture in error variants (propagates to tsoracle-core).

Modules§

docs
Long-form documentation for tsoracle-consensus.

Structs§

AdvanceOutOfRange
The error carried by a rejected out-of-range high-water advance. See reject_out_of_range_advance.
AdvancePayload
The payload of an “advance the high-water to at least at_least” command, shared by every consensus backend’s replicated log entry.

Enums§

ConsensusError
Errors returned by ConsensusDriver operations.
LeaderState
Leadership state surfaced to the server’s leader-watch task.

Traits§

ConsensusDriver
The single injection point for HA and durable persistence.

Functions§

reject_out_of_range_advance
Reject a high-water advance whose physical_ms value exceeds tsoracle_core::PHYSICAL_MS_MAX, before it is durably persisted.