// the find
lni/dragonboat
A feature complete and high performance multi-group Raft library in Go.
Dragonboat is a multi-group Raft consensus library in Go, targeting use cases where you need many independent Raft groups sharing a process — think distributed KV stores, coordination services, or anything that needs linearizable distributed state. It handles the full Raft spec including membership changes, leadership transfer, witnesses, and idempotent updates. The target audience is Go teams building distributed storage systems who want to own their state machine without rolling their own Raft.
The performance numbers are real and verified — 9M writes/second with Pebble on mid-range hardware, sub-5ms P99 at 8M ops/sec, and they include Jepsen/Knossos linearizability results rather than just synthetic benchmarks. Multi-group support is first-class, not bolted on; thousands of idle groups have minimal overhead and the batching logic accounts for active group count. The storage layer is properly abstracted: Pebble by default, RocksDB via plugin, or bring your own via the `raftio.ILogDB` interface. Test coverage is unusually deep — etcd's Raft paper tests are ported and run against this implementation, which is a meaningful correctness signal.
v4 has been 'in progress' since June 2022 and the master branch is explicitly unstable, meaning you're choosing between a stable v3.3 (last released January 2021) or riding an unfinished API redesign — neither is comfortable for a new production adoption. The documentation leans heavily on a single example repo and godoc; there's nothing explaining the operational model, failure modes, or snapshot strategy in depth. The built-in gossip-based registry is convenient but adds a non-trivial dependency and operational concern that isn't well documented. No Windows support, which is a hard block for some environments.