An implementation of the Raft distributed consensus algorithm in Go.
This implementation tries to implement Raft with:
- Leader election
- Log replication
- Persistence
- Membership changes (joint consensus)
- Log compaction (snapshotting)
- API server
- Persistence (with bbolt)
- gRPC transport
- KV store (as an example)
- Snapshotting
- Full tests
- Replication optimization
- Improve API server
- Internal metrics
- Logger optimization
This implementation is under the Apache 2.0 license. See the LICENSE file for details.