Skip to main content

Book Exercise Lanes

This module's exercise system is book-driven. Use these local chunks for targeted volume after you have already learned the concept from the guide.

How To Use This Page

  1. Finish the relevant concept page first.
  2. Solve at least one problem of your own from memory.
  3. Only then open the matching exercise lane.
  4. Keep a mistake log with tags such as fallacy missed, wall-clock used for ordering, vector clock compare wrong, phi threshold too tight, quorum miscounted, Raft invariant confused, fencing token missing, retry without idempotency key.

Lane 1: The Inescapable Reality

Use this lane when the issue is still "thinking like a single-machine developer."

Target outcomes:

  • 1 fallacy audit of a real system you know (each of the eight labeled "handled by X" or "latent bug").
  • 1 written enumeration of the partial-failure outcome set for a real RPC in your stack.
  • 3 timeout/tail-latency traces produced on a small test bed (varying GC/pause injection).

Lane 2: Clocks and Ordering

Use this lane when you know the rules but cannot apply them quickly mid-discussion.

Target outcomes:

  • 5 traces of 3-process systems with Lamport and vector stamps filled in by hand.
  • 3 concurrency-detection exercises where you must identify every concurrent pair from the vector clocks.
  • 1 written analysis of a production LWW design that breaks because of clock skew.
  • 1 NTP vs monotonic vs logical decision memo for a real system.

Lane 3: Failure Detection and Membership

Use this lane when the abstract idea of a failure detector doesn't translate into concrete timeout choices.

Target outcomes:

  • 1 heartbeat-tuning worksheet: given a workload, compute heartbeat interval, timeout or phi threshold, and expected false positives.
  • 1 comparison of fixed-timeout vs phi-accrual for a real cluster you know.
  • 1 SWIM-style membership walkthrough: draw how a membership update propagates across 100 nodes.
  • 1 written decision about whether a system needs BFT or crash-stop is sufficient, with justification.

Lane 4: Consensus

Use this lane when concept pages are clear but mid-trace reasoning falls apart.

Target outcomes:

  • 3 Paxos traces with quorum-intersection check, at least one with a competing proposer.
  • 3 Raft traces with one failure injection each (leader crash, follower crash, partition).
  • 1 decision memo comparing Multi-Paxos, Raft, and a coordination-service abstraction for a specific use case.
  • 1 FLP-aware written argument for why your chosen protocol is safe (preserves agreement) at the cost of occasional unavailability.

Lane 5: Distributed Patterns

Use this lane when the individual concepts are solid but you still can't compose them into an end-to-end design.

Target outcomes:

  • 1 full split-brain prevention design: quorum election, lease, fencing token, all composed.
  • 1 idempotent HTTP endpoint design document with idempotency-key schema and failure-mode table.
  • 1 coordination-service selection memo (ZK vs etcd vs Consul) for a real hypothetical system.
  • 1 postmortem analysis citing specific concepts from this module.

Self-Curated Problem Set

Build a custom set with these minimums:

  • 3 fallacy audits on 3 different systems.
  • 3 Lamport + vector trace exercises from scratch.
  • 3 phi-accrual tuning exercises.
  • 3 Paxos traces with quorum check.
  • 3 Raft traces including at least one partition and one crash.
  • 2 split-brain prevention designs (one with lease, one with fencing).
  • 2 idempotent-API designs for different domains (payments, scheduling).

Completion Checklist

  • Completed at least one lane in full.
  • Logged at least 12 real mistakes and corrections.
  • Traced both Paxos and Raft runs by hand end to end, including failure injection.
  • Wrote a split-brain prevention design composing quorum, lease, and fencing.
  • Designed at least one end-to-end idempotent API.
  • Analyzed at least one real postmortem using the module vocabulary.