Learning track · Roadmap
Distributed Systems — Learning Track (Index & Roadmap)
Published
Your map for the whole series: what’s built, what each lesson covers step by step, and what comes next. Use the checklist at the bottom to track progress.
- Mission: build deep, durable distributed-systems intuition → become a stronger backend engineer.
- Format: general theory, neutral examples. Each lesson ships as an updated EPUB (read on Kindle) plus markdown source here.
- Level: starts from zero; each lesson adds an optional expert corner for senior-level depth.
Where you are now
| Status | All 10 lessons built ✅ — read as one comprehensive page + deep-dive supplements |
| Read it | book-1-distributed-systems-fundamentals.epub (send to Kindle) · or distributed-systems-fundamentals.md |
| How to work it | Read in order; do each self-check from memory before peeking |
| Deep dive | consensus-deep-dive.epub — supplement to Lesson 8 (FLP proof · Raft safety · Figure-8 · 3f+1) |
| Deep dive | idempotency-keys-deep-dive.epub — supplement to Lesson 2 (the race · atomic recording · fingerprint · the TTL hazard) |
How every lesson is built (so you know what to expect each time): prose → space-time diagrams → a self-check quiz (recall before peeking) → an expert corner → new glossary terms → its own cover, delivered as a refreshed EPUB.
The 10-lesson path
Top-level arc. Detailed steps for each are below.
| # | Lesson | The single win | Status |
|---|---|---|---|
| 1 | The One Hard Truth | Why you can’t tell “slow” from “dead” | ✅ Built |
| 2 | Talking Across the Gap | Delivery guarantees + idempotency | ✅ Built |
| 3 | What Time Is It? | No global clock; logical time | ✅ Built |
| 4 | Order & Causality | Partial order, broadcast | ✅ Built |
| 5 | Replication | Leader/follower, multi-leader, leaderless | ✅ Built |
| 6 | Consistency Models | Eventual → causal → linearizable | ✅ Built |
| 7 | CAP & PACELC | The real trade-offs | ✅ Built |
| 8 | Consensus | FLP + Raft | ✅ Built |
| 9 | Partitioning / Sharding | Splitting data without hot spots | ✅ Built |
| 10 | Putting It Together | The resilience pattern toolkit | ✅ Built |
Step-by-step inside each lesson
Lesson 1 — The One Hard Truth ✅ (this is the current document)
The steps that make up the document you have now:
- Partial failure — the defining trait of a distributed system.
- The four indistinguishable causes of a missing reply — (diagram).
- Timeouts are a guess, not a truth — the double-execution trap — (diagram).
- The Two Generals Problem — agreement over a lossy channel is impossible — (diagram).
- The 8 Fallacies of Distributed Computing — the practitioner’s checklist.
- Why this matters for your day job — real bug classes (double-charge, split brain).
- Expert corner — end-to-end argument · failure detectors (φ-accrual) · FLP impossibility · the “exactly-once” myth.
- Self-check (4 questions + answer key) · Glossary seed · Resources.
Lesson 2 — Talking Across the Gap ✅ (built)
- The two ways nodes talk: RPC vs messaging.
- Delivery guarantees: at-most-once · at-least-once · exactly-once.
- Why exactly-once delivery is impossible (callback to Lesson 1).
- Idempotency — the definition, and idempotency keys in practice.
- Deduplication — request IDs, the dedup store.
- Expert corner: idempotent vs commutative · “effectively-once” · outbox teaser.
Lesson 3 — What Time Is It? ✅ (built)
- Why there is no global clock; clock skew and why NTP isn’t enough.
- Physical vs logical time.
- The happens-before relation.
- Lamport clocks, then vector clocks.
- Expert corner: Spanner’s TrueTime · hybrid logical clocks.
Lesson 4 — Order & Causality ✅ (built)
- Total vs partial order.
- Causal order — preserving cause-and-effect.
- Broadcast abstractions: best-effort → reliable → FIFO → causal → total.
- Expert corner: state-machine replication, the bridge to consensus.
Lesson 5 — Replication ✅ (built)
- Why replicate: fault tolerance, latency, throughput.
- Single-leader (leader/follower).
- Multi-leader and conflict resolution.
- Leaderless — quorums (R + W > N).
- Replication lag and the anomalies it causes.
- Expert corner: chain replication · anti-entropy / read repair.
Lesson 6 — Consistency Models ✅ (built)
- The spectrum — why “consistency” is not one thing.
- Eventual consistency.
- Session guarantees — read-your-writes, monotonic reads.
- Causal consistency.
- Linearizability — and what it costs.
- Expert corner: consistency (replication) vs isolation (transactions) — two different words.
Lesson 7 — CAP & PACELC ✅ (built)
- What CAP actually states — and the myths.
- CP vs AP behaviour under a partition.
- PACELC — the latency/consistency trade even without partitions.
- Expert corner: CAP critiques · how real databases classify themselves.
Lesson 8 — Consensus ✅ (built)
- The consensus problem — what “agree” formally means.
- FLP impossibility (intuition; callback to Lesson 1).
- Quorums and majorities.
- Raft: leader election.
- Raft: log replication and commitment.
- Expert corner: Paxos vs Raft · Byzantine fault tolerance.
Lesson 9 — Partitioning / Sharding ✅ (built)
- Why partition — scaling beyond one node.
- Key-range vs hash partitioning.
- Rebalancing as the cluster grows.
- Hot spots / skew and how to avoid them.
- Request routing.
- Expert corner: consistent hashing · partitioning secondary indexes.
Lesson 10 — Putting It Together ✅ (built)
- Retries + exponential backoff + jitter.
- Idempotency keys revisited.
- The outbox pattern (reliable publish).
- Sagas (long-running, cross-service workflows).
- The exactly-once illusion — effects vs delivery.
- The end-to-end argument, revisited as a design rule.
- Expert corner: a resilient-pipeline design checklist you can reuse at work.
Progress checklist
- Lesson 1 — The One Hard Truth
- Lesson 2 — Talking Across the Gap (idempotency)
- Lesson 3 — What Time Is It?
- Lesson 4 — Order & Causality
- Lesson 5 — Replication
- Lesson 6 — Consistency Models
- Lesson 7 — CAP & PACELC
- Lesson 8 — Consensus
- Lesson 9 — Partitioning / Sharding
- Lesson 10 — Putting It Together
All ten are written. Tick each box as you finish its self-check; tell me where you want to go deeper.
Files in this folder
README.md ← you are here (index + roadmap + tracker)
distributed-systems-fundamentals.md ← lesson source (grows as lessons are added)
book-1-distributed-systems-fundamentals.epub ← Kindle build (regenerated each lesson)
diagrams/
00-cover.svg / .png ← series cover
01-four-causes.svg / .png ← Lesson 1 diagrams
02-timeout-double-run.svg / .png
03-two-generals-regress.svg / .png
04-delivery-guarantees.svg / .png ← Lesson 2 diagrams
05-idempotency-key.svg / .png
06-happens-before.svg / .png ← Lesson 3
07-broadcast-ordering.svg / .png ← Lesson 4
08-quorum-rw.svg / .png ← Lesson 5
09-consistency-spectrum.svg / .png ← Lesson 6
10-cap-pacelc.svg / .png ← Lesson 7
11-raft-election.svg / .png ← Lesson 8
12-raft-log.svg / .png ← Lesson 8
13-hash-vs-range.svg / .png ← Lesson 9
14-outbox-pattern.svg / .png ← Lesson 10
Primary resources (full links inside the lesson)
Kleppmann’s Cambridge lectures + DDIA (the spine) · MIT 6.5840 (case studies) · the 8 Fallacies · raft.github.io (for Lesson 8).