Databases, transactions, migrations, concurrency and retries: the failures that only show up in production.
Everything so far in this course can be checked on one laptop by one person. This chapter is about the failures you can't see that way. They need two people pressing a button in the same second, a network that drops the reply and not the request, a server that dies halfway through, or a table with ten million rows in it. Unit tests run one thing at a time on clean data, and a demo has one honest user. Neither can show you any of this, so an agent that has passed every check has told you nothing about it.
An agent won't bring these up by itself, because the happy path works and nobody asked. In our own experiment (one small model, one-function tasks, no real repo), a task about payment webhooks passed the hidden scenarios 27% of the time on a vague brief and 33% with a full line of checks behind it. With a brief that said events arrive more than once and out of order, it passed 100% of the time either way. The mechanical checks in that harness couldn't catch what nobody had named. A neutral reviewer reading the one-shot code rejected all 15 vague runs and none of the worded ones, so someone thinking about webhooks can. But it was the right words that moved the pass rate.
So this chapter gives you the words, and each one comes with a machine you can break. Most of them are real: a real B-tree with real comparison counts, a real transaction log that really survives a power cut, every real ordering of two operations. Where the network or the numbers are simulated, the bench says so.
It ends on the other danger. An agent holding production credentials can do in seconds what used to take a careless person an afternoon, and it has been reported often enough now that you should plan for it. By the end you should be able to say "use a transaction with a unique constraint and an idempotency key" and know exactly what each of those words is holding up.