NEW
A leader-based consensus algorithm designed for understandability that manages a replicated log.
DESCRIPTION
Raft decomposes consensus into leader election, log replication, and safety. It was designed to be easier to teach and implement than Paxos, while providing equivalent guarantees under crash failures. Many systems (e.g., etcd, Consul, CockroachDB) adopt Raft to replicate state machines and metadata. Its clear roles and timing rules help avoid subtle bugs.
ALTERNATIVE DEFINITIONS
Wikipedia
Raft is a consensus algorithm designed as an alternative to Paxos that is intended to be easier to understand.
Emphasizes understandability as a design goal and Paxos alternative.
Raft Paper (Ongaro, Ousterhout)
Raft is a consensus algorithm for managing a replicated log.
Defines Raft’s core abstraction of a replicated log.
RELATED TERMS
Consensus State Machine Replication Leader Election Log Replication
COMPETING TERMS
KNOWLEDGE AREAS
Software Engineering Data Architecture Infrastructure Data Storage & Operations
TARGET AUDIENCE
Software Developer Cloud Architect Data Engineer MLOps Engineer DevOps Engineer
EXTERNAL SOURCES
TOP QUESTIONS
Why was Raft created?
To provide a consensus algorithm that is easier to understand and implement than Paxos while maintaining equivalent guarantees.
Category: Origin
How does Raft achieve consensus?
A leader is elected to serialize log entries; followers replicate entries, and safety rules ensure logs stay consistent.
Category: Concept
What systems use Raft?
etcd, Consul, and CockroachDB use Raft to replicate metadata or data for availability and consistency.
Category: Example
What are common mistakes implementing Raft?
Incorrect election timeouts, not persisting term/index metadata, and mishandling log compaction can break liveness or safety.
Category: Mistakes
How does Raft compare to Paxos performance-wise?
It’s similar; using a stable leader allows efficient batching. Differences often hinge on implementations and deployment environments.
Category: Comparison
How does Raft handle leader failure?
Followers start a new election after timeouts, and a new leader is chosen via majority votes.
Category: Management
Can Raft tolerate Byzantine faults?
No; Raft is crash-fault tolerant. Byzantine scenarios require BFT protocols like PBFT or HotStuff.
Category: Requirements
How to test a Raft deployment?
Use chaos testing for partitions and restarts, validate linearizable reads, and monitor leader stability and commit indices.
Category: Testing
What optimizations improve Raft throughput?
Batching, pipelining, optimized disk flushes, and co-locating leaders near writers improve performance.
Category: Best practices