6.5840 Lab 3: Raft
This is the first in a series of labs in which you'll build a fault-tolerant key/value storage system. In this lab you'll implement Raft, a replicated state machine protocol. In the next lab you'll build a key/value service on top of Raft. Then you will “shard” your service over multiple replicated state machines for higher performance. A replicated service achieves fault tolerance by storing complete copies of its state (i.e., data) on multiple replica servers. Replication allows the service to continue operating even if some of its servers experience failures (crashes or a broken or flaky network). The challenge is that failures may cause the replicas to hold differing copies of the data. Raft organizes client requests into a sequence, called the log, and ensures that all the replica servers see the same log. Each replica executes client requests in log order, applying them to its local copy of the service's state. Since all the live replicas see the same log contents, they all execu
6.5840 Lab 3: Raft 6.5840 - Spring 2026 6.5840 Lab 3: Raft Collaboration policy // Submit lab // Setup Go // Guidance // Piazza Introduction This is the first in a series of labs in which you'll build a fault-tolerant key/value storage system. In this lab you'll implement Raft, a replicated state machine protocol. In the next lab you'll build a key/value service on top of Raft. Then you will "shard" your service over multiple replicated state machines for higher performance. A replicated service achieves fault tolerance by storing complete copies of its state (i.e., data) on multiple replica s
saved by
related reading
- Students' Guide to Raft :: Jon Gjengsetthesquareplanet.com
- Implementing Raft: Part 3 - Persistence and Optimizations - Eli Bendersky's websiteeli.thegreenplace.net
- An Understandable Consensus Algorithmpdos.csail.mit.edu
- 6.5840 Schedule: Spring 2026pdos.csail.mit.edu
- Aeron Cluster - The Aeron® Filestheaeronfiles.com
- Raft Consensus Algorithmraft.github.io
- A Distributed Systems Reading Listferd.ca
- Scaling Replicated State Machines with Compartmentalizationmwhittaker.github.io
- Building a BFT JSON CRDTjzhao.xyz
- Chain Replication for Supporting High Throughput and Availabilitycs.cornell.edu
- How to do distributed locking - Martin Kleppmann's blogmartin.kleppmann.com
- Let’s take a crack at understanding distributed consensuspreethikasireddy.com