Many Machines
Courtyard is good, and Mira mentions it to someone. People you have never met begin to sign up: a few hundred, then a few thousand, and then a number with more digits than the courtyard had windows.
All of it runs on one machine. It is rented, it has a public address, and it sits, in the metaphorical sense, under Mira’s desk. It runs the chat server and the feed server and the database, and it holds every photo anyone has uploaded. It is about to run out of something.
Every chapter in this part has that shape. Something runs out, whether the processor, the disk, the read throughput, the write throughput, the entry points, the failure budget, the engineers, or the ability to know what happened, and Courtyard changes shape to get more of it, and the change brings with it a failure that did not exist before. Each chapter is built around the resource that gave out, and each ends with the new way things can go wrong.
Four ideas follow you up from Parts I and II and grow larger at every step. Staleness, which you met in the cache of Chapter 6 and the name lifetimes of Part II, becomes the antagonist of this part; it turns up in a replica, then in a cache, then in two datacentres that hold different opinions. Idempotency, from the numbered pieces and the retried requests, returns when jobs run twice. Timeouts, which never had a right answer, acquire a new consequence, which is that a retry is itself load. And backpressure, from the closed window and the loop’s contract, decides whether a system under too much load degrades or falls over. The gaps in this part are gaps of exhaustion.
One piece of writing goes with you. At the end of every chapter you revise a single document, Courtyard’s design, and each revision records three things: what ran out, what changed, and what can now fail that could not before. By the end there are twenty revisions, each justified by a measured failure, and that document is the deliverable. You can start it now, with revision zero. One machine, everything on it, and nothing has run out yet.