Master Distributed Systems by Building Them

Consensus, replication, sharding, fault tolerance — not as slides and diagrams, but as systems you build, break, and reason about yourself.

Distributed systems are hard for reasons that have nothing to do with syntax: consensus, leader election, replication, failure detection. This site exists to present the challenges, concepts, and terminology behind distributed systems — how they're implemented in existing large-scale systems like Kafka, Cassandra, and Raft-based databases, and what we can learn from those implementations.

We do this in two ways: a hands-on guide where you build a full-scale distributed system yourself and internalize the challenges as you go, and a blog covering the internals and nuances you reach for once you're past the fundamentals.