DS / LAB Distributed Systems
A COURSE IN DISTRIBUTED SYSTEMS / 01

What survives
a failure?

When messages arrive late, nodes stop and operations overlap, what can a system still promise? Build the model, inspect real experiments, then change the conditions yourself.

n1n2ⅡLEADERFOLLOWERPAUSED

ILLUSTRATION / 3 voters · quorum 2
Real process results are recorded separately.

07Connected chapters
04 × 03Experiments × baseline repetitions
etcd 3.6.6Pinned implementation
1 hostReal processes, bounded claims
PLAY → PREDICT → EXPLAIN

Seven scenes. Your decisions change the result.

Pause a leader, drag a read past a write, reuse a retry ID, or let the stale worker write first. Then compare your prediction with real saved evidence.

Break the cluster · Drag a history · Resume an old worker

New: real peer partitions · MIT 6.5840 course map

Build the concepts in order

Start with processes, files and request/response programming. No business-domain background is assumed. Chapters 1–3 build the model; 4–6 apply it; 7 ties the evidence together.

01

System & failure assumptions

Name the fault model before making a promise.

25–40 min · Suggested study time, not measured
02

Time, causality & histories

Separate a timestamp from an ordering constraint.

30–45 min · Suggested study time, not measured
03

Replication & consistency

Define which observations a shared object permits.

35–50 min · Suggested study time, not measured
04

State machines, Raft & quorum

Follow a decision through election, commit and recovery.

45–60 min · Suggested study time, not measured
05

RPC, unknown outcomes & retries

Keep a retry from becoming a second effect.

35–50 min · Suggested study time, not measured
06

Leases, locks & fencing

Stop stale generations at the receiving resource.

40–55 min · Suggested study time, not measured
07

Recovery & evidence

Reconcile unknowns and preserve the scope of a claim.

30–45 min · Suggested study time, not measured
Know the scope before the result.

The cluster is three real processes on one host. Faults are owned process crashes/pauses and delayed application responses. The browser checker is a separate small model. Neither is a multi-host performance proof.

Inspect. Change. Reproduce.

Read without installing anything. Run the companion when you want to explore a different schedule.

Interactive classroom ↗

Seven hands-on scenes; pause nodes, drag reads, change delays and replay evidence. Compare linearizable and sequential histories. Inspect a witness, a counterexample or an inconclusive search.

Real experiment evidence ↗

Every baseline repetition: caller outcomes, committed effects, lease generations and recovery reads.

Reproduce the real experiments ↗

Download the standalone source. Run, inspect and modify three real experiment families on loopback.

Connect the layers

Continue into local transactions, streaming state, computational recovery and runtime cancellation without conflating their guarantees.

MySQL Lab · Streaming Lab · Compute Lab · Java Runtime Lab