In Search of an Understandable Consensus Algorithm
Raft decomposes consensus into leader election, log replication, and safety, with a strong leader that alone appends entries and a term number that orders leadership. The paper argues that understandability is a design goal and shows the algorithm is as practical as Paxos.
Key ideas
- A single leader per term simplifies the replication story
- Log matching keeps replicas identical up to the committed index
- Election restrictions ensure a new leader already holds all committed entries
Why read it now
etcd, CockroachDB, and most new replicated logs implement Raft. This is the version of consensus you will actually read code for.
Question to keep in mind
Why does Raft refuse to commit entries from earlier terms by counting replicas alone, and what does it do instead?