Design a Raft-Based Consensus Layer for a Multi-Region Database
Overview
What this challenge is about.
Implement Raft in Go per the original Ongaro-Ousterhout paper: leader election, log replication with the safety property, snapshotting at 10K-entry granularity, and joint-consensus membership changes. Build a Jepsen-style harness that injects partitions (asymmetric, healing), clock-skew (up to 500ms), and packet reordering. Run 200 hours of soak under fault injection on a 5-node cluster. Deliver implementation, fault-injection harness, harness logs, and a 7-page design document covering the safety arguments and the cases where you accept reduced availability.
The Brief
What you'll do, and what you'll demonstrate.
Design and validate a Raft-based consensus layer that survives 200 hours of partition + clock-skew + reordering faults on a 5-node cluster.
Earning criteria — what you'll demonstrate
- Implement Raft from the paper without external Raft libraries
- Reason about safety vs liveness under partitions and clock skew
- Design fault-injection tests that exercise corner cases, not happy paths
- Write a design document that distinguishes safety from availability tradeoffs
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.