Phase 3: Distributed Systems & System Design (W10–W14)

Exit criteria

  • Run a 45-min system design interview with the framework in System Design Roadmap: requirements → estimates → API → data model → HLD → deep dives → bottlenecks
  • Explain replication (leader/follower, multi-leader, leaderless), partitioning, consistency models, CAP/PACELC, and quorum math
  • Implement Raft leader election (MIT 6.5840 Lab 3A) in Go
  • Use Kafka correctly: partition keys, ordering, consumer groups, rebalancing, at-least-once + idempotency, DLQs
  • Implement outbox + saga and explain why 2PC is avoided
  • Have 12+ case studies in Notes/ using the System Design Case template
  • Build a durable engine with leases + fencing tokens that survives kill -9 chaos
  • Ship Orbit v2 - Durable Workflows

🔥 This phase’s work

TrackWhere
🎯 Weekly assignments, labs, cognitive tasks, open questionsAssignments - Phase 3 (A10–A14)
⚙️ InternalsKafka Internals · PostgreSQL Internals
🧩 Design patternsDistributed & Cloud Patterns
⚫ Boss fightChaos Day: 5,000 runs with random kills/failovers → 0 lost runs, 0 duplicate effects
🧠 Daily/weekly drillsCognitive Drills · self-grade with Grading Rubric

Tracks

Reading (the core of your architecture education)

  • ⭐ Designing Data-Intensive Applications (Kleppmann; 2nd ed. with Riccomini if available). Read ch. 1–9 slowly and write a note per chapter
  • Understanding Distributed Systems (Vitillo): short, very clear, read it first as a warm-up
  • System Design Interview Vol 1 & 2 (Alex Xu): case-study practice
  • Microservices Patterns (Chris Richardson): saga, outbox, CQRS
  • Building Microservices 2e (Newman): ch. on splitting, communication, resiliency
  • Papers: Raft, Dynamo, Kafka (see Engineering Blogs & Papers)
  • Lectures: Martin Kleppmann’s Distributed Systems (Cambridge) on YouTube; MIT 6.5840 lectures

Retro

  • What stuck:
  • What didn’t:
  • Skill Matrix delta: