We replaced Redis with MySQL for inventory reservations—and it scaled
Shopify moved checkout inventory reservations from Redis to MySQL using one row per sellable unit, a bounded pool of 1,000 rows per item/location and SELECT ... FOR UPDATE SKIP LOCKED. The real ceiling was connections held by other checkout code: tagging SQL by business process and measuring hold time in ProxySQL found it, and the cleanup removed 50% of reads and 33% of transactions on the primary.
- Published
- 2026-05-12
- Scale
- $5.1 million sales/minute (Black Friday 2025 peak)
- Techniques
- database migration dual writes query optimization connection pooling
- Stack
- MySQL Redis ProxySQL
Try this stack yourself
- Railway · Deploy something like this on Railway: spin up MySQL and Redis plus your app in a few clicks. New accounts get $20 in credit (applied when you pick a paid plan).
Railway isn't part of Shopify's setup in this story. It's just an easy place to try the same building blocks.
Some links above are affiliate links: if you sign up, How They Scaled may earn a commission at no extra cost to you. We only list tools that fit the stack in the story.