Who should read it
Core for distributed-systems engineering and systems-research roles: Raft is the consensus protocol practitioners most often implement, and its paper is a model of a precise correctness argument. Read Sections 5 and 8 closely and study Figure 2 until you can implement from it; Sections 6 and 7 matter if you will build a full replicated service. For roles that only use coordination services, awareness of leader election, log replication and the commit rule is enough.
Study objectives
- Implement leader election and log replication from Figure 2 and explain the purpose of every rule.
- Reproduce the safety argument: why committed entries appear in every future leader’s log, including the election restriction and the commit rule for earlier-term entries.
- State the fault and timing assumptions and separate what holds always (safety) from what needs timing (liveness).
- Evaluate the empirical sections: the understandability user study and the leader-election timing measurements.
Prerequisites
Main concepts to understand
- Replicated state machines driven by a replicated log
- Terms as a logical clock; leader election with randomized timeouts
- AppendEntries consistency check and the Log Matching Property
- Election restriction: vote only for candidates whose log is at least as up to date
- Committing only current-term entries by counting replicas (the Figure 8 scenario)
- Persistent state, crash recovery and client interaction with request deduplication
- Joint consensus for membership changes and snapshots for log compaction
What to inspect in the evaluation
- Understandability user study (Section 9.1): participants, quiz design, ordering of Raft and Paxos material, the paired statistical test and the table of bias-mitigation steps; consider threats such as lecture quality, materials and prior exposure.
- Correctness evidence (Section 9.2): what the TLA+ specification covers, which property was mechanically proven, which invariants were not mechanically checked, and what the informal proof covers.
- Performance (Section 9.3): leader-election convergence and downtime as functions of timeout randomization, measured on the authors’ implementation and network; consider how results depend on broadcast time.
- Scope: there is no steady-state throughput comparison with other consensus implementations; the paper argues message-count parity with Paxos instead.
Guarantees versus empirical results
Correctness or design arguments
- The Figure 3 safety properties (Election Safety, Leader Append-Only, Log Matching, Leader Completeness, State Machine Safety) hold under crash-recovery failures and message loss, delay, duplication and reordering, independent of timing.
- The Leader Completeness argument in Section 5.4.3, backed by a TLA+ specification, a partly mechanized proof and an informal proof (Section 9.2).
- Joint consensus prevents two disjoint majorities from deciding during membership changes (design argument, Section 6).
- Liveness is not guaranteed in general; availability depends on broadcastTime ≪ electionTimeout ≪ MTBF (Section 5.6).
Empirical results (depend on setup)
- Students scored higher on a Raft quiz than on a Paxos quiz in the user study, with a reported statistical test.
- Randomized election timeouts made split votes rare and elections converge quickly in the authors’ measurements.
- Measured downtime after leader crashes depends on the chosen election-timeout range.
Reading plan
- Pass 1 (30 minutes): abstract, Sections 1–2, Figure 2 and Figure 3; write the five safety properties in your own words.
- Pass 2 (2 hours): all of Section 5, then Section 8 on client interaction; trace the Figure 7 and Figure 8 scenarios by hand.
- Pass 3 (several days, alongside 6.5840 Lab 3): Sections 6, 7 and 9, the 6.5840 Raft FAQ and the TLA+ specification; reproduce the Figure 8 problem in a test by breaking the commit rule.
Discussion prompts
- Why does Raft need both the election restriction and the current-term commit rule? Construct a failure for each one removed.
- What does Raft’s strong leader simplify compared with Multi-Paxos, and what does it cost?
- How does the understandability claim differ in kind from the safety claim, and how convincing is the user study?
- What must a Raft-based key/value service add for linearizable reads, and why is reading the leader’s state not automatically linearizable?
- What happens to availability under a partial partition in which the leader can reach only a minority?