The Product Page That Melted Redis
Your e-commerce product-detail service reads a single row from Postgres per request: price, stock count, and description for one SKU. Traffic is normally 3,000 req/s, spread across 500,000 SKUs, and a single r6g.xlarge Postgres read replica handles it fine at that fan-out. A flash sale drops the price on one SKU and a marketing email goes out to 2 million subscribers; for the next 20 minutes, 80% of traffic — roughly 12,000 req/s — hits that one SKU's page. Postgres connections saturate, p99 latency goes from 40ms to 6 seconds, and the on-call engineer pages you asking whether caching this endpoint in front of Postgres would have prevented the outage, and if so, exactly how you'd design the read path, the invalidation path when price or stock changes, and what happens to correctness if two updates land on the same key within the same second.