Distributed Systems#

A deep dive into the theory and practice of distributed systems — the algorithms, consistency models, and failure modes that underpin every large-scale system. This path focuses on the foundational concepts that are often hand-waved in higher-level system design discussions.

Prerequisites#

This path assumes familiarity with:

Sections#

#SectionTopics
1Distributed Systems FundamentalsWhy distribution is hard, fallacies of distributed computing, network partitions, partial failures, FLP impossibility, system models
2Time & OrderingPhysical clocks, clock skew, Lamport clocks, vector clocks, hybrid logical clocks, happens-before, causal ordering
3Consistency ModelsLinearizability, sequential consistency, causal consistency, eventual consistency, strong eventual consistency, session guarantees
4Consensus AlgorithmsPaxos, Multi-Paxos, Raft, Viewstamped Replication, ZAB, practical comparison
5ReplicationSingle-leader, multi-leader, leaderless quorum, read-your-writes, monotonic reads, chain replication, conflict resolution
6Partitioning & ShardingRange partitioning, hash partitioning, consistent hashing, rebalancing, secondary indexes, hot spots
7Distributed TransactionsTwo-phase commit, three-phase commit, distributed locking, Calvin, Spanner TrueTime, transaction coordinators
8CRDTs & Eventual ConsistencyState-based vs operation-based CRDTs, G-Counter, PN-Counter, OR-Set, LWW-Register, Merkle trees, anti-entropy
9Failure Detection & RecoveryHeartbeats, phi accrual detector, gossip protocols, SWIM, membership protocols, read repair, hinted handoff
10Case StudiesDynamo, Spanner, Kafka, CockroachDB, Cassandra, etcd — architecture decisions and tradeoffs