An interactive, interview-focused course on distributed systems. Seven real-world systems dissected through 20 reusable design patterns.
| System | Category | Key trade-off |
|---|---|---|
| Dynamo | Key-value store | Sacrifices consistency for availability |
| Cassandra | Wide-column NoSQL | Tunable consistency with decentralized design |
| BigTable | Wide-column NoSQL | Strong consistency with centralized coordination |
| Kafka | Messaging & streaming | Durability and throughput over low latency |
| GFS | Distributed file system | Optimized for large sequential reads/writes |
| HDFS | Distributed file system | Open-source GFS for batch processing |
| Chubby | Coordination service | Strong consistency for small metadata |
Each system is covered end-to-end: the problem it solves, architecture, read/write paths, failure handling, and trade-offs.
20 reusable patterns that appear across every distributed system:
- Data distribution: Consistent Hashing, Quorum
- Replication: Leader and Follower, High-Water Mark
- Durability: Write-ahead Log, Segmented Log, Checksum
- Failure detection: Heartbeat, Gossip Protocol, Phi Accrual Failure Detection
- Consistency: Vector Clocks, CAP Theorem, PACELC Theorem
- Anti-entropy: Hinted Handoff, Read Repair, Merkle Trees
- Coordination: Lease, Split-brain, Fencing, Bloom Filters
Every pattern links to the systems that use it. Every system links back to the patterns it relies on.
- Interview angles in every chapter with practical system design advice
- Cross-references connecting systems to patterns and patterns to systems
- Comparison tables for trade-offs, architecture decisions, and failure modes
- Quick reference cards on every summary page
- Systems at a Glance page comparing all 7 systems across 12 dimensions
pnpm install
pnpm startOpens a local dev server at http://localhost:3000. Changes are reflected live.
pnpm buildGenerates static files in the build directory.
Deployed automatically to GitHub Pages via GitHub Actions on push to main.
- Docusaurus for the documentation framework
- KaTeX for math rendering