Agreed is an implementation of the Raft consensus protocol in Rust, intented to serve as a basis for distributed data systems.
- Fully asynchronous, built on top of Tokio.
- Pluggable storage and network layer.
- Log compaction with snapshots and snapshot streaming.
- Fully pipelined and batched log replication with congestion control.
- Single-node cluster membership change operations.
- Non-Voter nodes for data replication/change data capture.
- Instrumented with tracing.
NOTE: the appearance of the "section" symbols
§ throughout this project are references to specific sections of the Raft spec.