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.

See also

The best scaling write-ups, weekly

One email a week. No spam.

Subscribe