The incident
Mira is a fictional price-comparison marketplace. Its checkout page calls GET /price/{sku} for every item in the basket, and that lookup serves 71% of requests. Prices change often enough that the team keeps them in Redis in front of Postgres.
At 14:02 on Thursday, a deploy flushed Redis. Forty thousand product pages then missed the cache within two minutes. Postgres reached 96% CPU, price p99 rose from 11ms to 2.8s, and completed checkouts fell 31% for nine minutes. The store recovered when the traffic spread back across warm keys.
The action item is to make this read path survive a cold cache and a missing Redis dependency. Keep the prices correct and keep the checkout useful; changing the pricing rules or moving the database is outside the job.
Lab boundary
Implemented: one FastAPI price endpoint, Redis cache-aside behavior, Postgres reads, a burst load generator, counters, and controls for expiring a hot key or simulating a dependency outage. Simulated: the 40,000-page burst is represented by concurrent local requests, and Postgres size is represented by the same indexed lookup at a smaller scale. Design doc: multi-region caching, cache warming across a fleet, and the operational policy for prices older than the local 30-second window.
Starter
Use the template at https://github.com/Tserewara/starter-cold-cache-checkout.