Skip to main content

Labs

The twelve-week teaching schedule: what happens in each lab, what to prepare, and what leaves the room.

Each lab is the hands-on work behind that week's lecture: build the failure, make it happen on purpose, then fix it and say what the fix does to the requests that were working already. related: connects a lab to the lecture that sets it up and the assessment it feeds.

A boomerang mid-flight, curving back toward the open hand that threw it

Reproducing the reflex

A read times out and the retry succeeds. Nothing was written and nothing broke, so the reflex gets learned before anyone examines it.

Week 1 · 22 February 2027

A rubber stamp striking the same receipt twice, the second impression landing just off the first

Charging twice on purpose

The same retry, aimed at a write: one charge becomes two, and the client cannot tell whether it already worked.

Week 2 · 1 March 2027

A single tap turned fully open, overflowing a basin faster than the drain can take it

Becoming the outage

A two-second slowdown, a retry loop with no delay between attempts, and a client that keeps the dependency down long after the original problem passed.

Week 3 · 8 March 2027

A tight cluster of identical alarm clocks, all their hands at the same hour, ringing together

Synchronising a herd

Ten thousand clients, each correct alone, that fall over the dependency together the moment it recovers.

Week 4 · 15 March 2027

A pressure gauge with its needle pinned into a red zone near the top of the dial

Counting to twenty-seven

Twenty-seven attempts for one request, and why no single layer can see it happening.

Week 5 · 22 March 2027

Two hands, each dropping an identical coin into the same slot at once

Two people, one payout

The same failure with no code in it: two people, one payout, and a runbook standing in for a lock.

Week 6 · 12 April 2027

An envelope caught between two mail slots side by side, one bricked shut, the other open

Telling a no from a not yet

A 400 and a malformed message look exactly like a timeout at the moment they fail. Classifying failures before retrying them, and what goes wrong when the classification is wrong.

Week 7 · 19 April 2027

An industrial circuit-breaker switch lever caught in its half-thrown middle position

Watching a breaker trip

A dependency down for minutes, and a breaker that refuses calls outright rather than letting every request find out for itself.

Week 8 · 26 April 2027

A telephone ringing on a desk in an empty room, its chair pushed back and empty

Retrying into an empty room

The work finishes; the person who asked closed the tab ninety seconds ago.

Week 9 · 3 May 2027

A house of cards standing perfectly still on a table that is visibly tilting to one side beneath it

Reading past the dashboard

A dependency degrades for six weeks, retries absorb every failure, and the success-rate dashboard never moves.

Week 10 · 10 May 2027

A row of dominoes with the last one already fallen, out of order ahead of the ones still standing

Finding the point of no return

Some steps cannot be retried at all, which makes the decision an ordering problem instead.

Week 11 · 17 May 2027

A wooden signpost whose two blank arms are the same size and point in opposite directions

Arguing the case

A retry policy that cites every mechanism from the last eleven weeks, the incident it produced, and a position you have to defend.

Week 12 · 24 May 2027