Checkpoint: Scaling Reads
What This Section Handed You
Seven lessons ago, The Read-Scaling Playbook opened with one diagnostic question — is the database slow, or busy? — and a ladder. You've now climbed every rung with real numbers attached, and standing at the top, the whole section collapses into one law:
Read scaling has exactly two moves.
Move 1 — do less work per read. The index (one indexed box: 16,772 tps; two un-indexed machines: 51). The pooler (a connection is a ~13.9 MB process; 101 clients on 5 backends). The batch (501 round trips at 646 ms → one JOIN at 3.17 ms). These create no copy of anything — no staleness, no sync, no new failure mode. That is why they come first, every time.
Move 2 — answer from a copy. The replica (the database syncs it — and 272 bytes of lag vanished a user's write). The denormalized column (you sync it — and 1,008 increments became 75). The materialized view (the database syncs it on command — 589 while the truth said 100,589: old, never false). The cache (nobody syncs it — stale for a full TTL after the database healed). Every copy buys speed and hands you the same two questions: who syncs it, and what did you promise this read?
This checkpoint tests the skill that separates the section's graduates from its victims: reading the evidence before reaching for a lever.

Triage: Three Slow Reads
You're on call. Three tickets, three different diseases with similar symptoms. Open the evidence (at least two tools per case), then commit to a lever. Fair warning from the section itself: in every case, the instinctive answer is one of the myths you've already been warned about — and the meters will bill you with the real numbers.

The Quiz: Eight Decisions
Eight scenarios spanning all seven lessons. Every wrong option is a trap this section explicitly corrected — if one tempts you, the explanation names the lesson to re-read. Six of eight passes.

Where You Stand
If the triage felt like recognition rather than guessing — the bored-CPU-plus-ladder smell, the perfect-queries-pegged-box smell, the exactly-one-TTL smell — then §4 did its job: you don't scale reads by reflex anymore, you scale them by evidence, and every copy you create comes with a contract you wrote on purpose.
You may have noticed what this section carefully avoided: every lever here scaled reads. The writes still funnel into one leader, one table, one box — and no replica, cache, or index can absorb a write. When the write side becomes the wall, the answer is to split the data itself. Next: Partitioning vs Sharding — the section where the truth stops living in one place.