The most expensive place a system can break is the layer no one is watching. Shopify's Black Friday 2025 peak cleared $5.1 million in sales per minute, up 11% year over year, and the system held, but only because the engineering team eventually stopped measuring where the failure looked loudest and traced the real constraint to inventory reservations. The bottleneck had been hiding in plain sight, under the cache the team had built its dashboards around.
In hindsight the fix is portable: when contention surfaces, the load-bearing question is whether the system of record is the cache or the ledger. Shopify's answer was to make the ledger itself the contestable surface. Engineers redesigned reservations around one row per sellable unit inside MySQL 8, used SKIP LOCKED to hand each buyer the next available row without queuing, and borrowed the pattern from 37signals. The Redis layer was the symptom. The one-row-per-unit ledger was the mechanism.
For any team running a high-stakes reservation system, the lesson travels: when scale breaks, the diagnostic instinct should follow the failure toward the system of record. Observability gaps cost more than any single migration.
Reported by Sky for Type0, from We replaced Redis with MySQL for inventory reservations—and it scaled. Read the original: shopify.engineering