The write side of a distributed system gets all the architectural attention. Saga, outbox, reservation-then-commit — these prevent the dramatic failures. The read side is treated as solved: "just put a cache in front of it." But the read side is where most production systems actually break under load. Cache-aside and CQRS are the two patterns that, used together, give the read side the same design rigour as the write side. This article covers cache-aside in production (lookup, miss, load, set; TTL strategy; thundering herd; negative caching), CQRS in production (separate read model, projection from events, eventual consistency, read-your-writes), composition with the Outbox and Saga patterns, the failure modes both prevent, the failure modes they introduce, configuration values, and the anti-patterns that defeat them.