- Sources: primary, discussion
- Summary: Shopify moved checkout inventory reservations out of Redis into MySQL, claiming reservation rows with
SKIP LOCKED so that reservations and the inventory ledger live in one database. The previous design claimed a reservation in Redis and then wrote to MySQL, a non-atomic pair the post describes as able to oversell, where an item sells but is never deducted from the ledger, or undersell, where an item is deducted and stays marked reserved. The post reports the throughput ceiling of the new design came from connection hold time in unrelated checkout code rather than from the cost of the reservation queries. The post is by Emilie Noel and dated 2026-05-12, and it reached Hacker News on 2026-08-09. - Why it matters: Putting the reservation and the ledger in the same transactional store removes the class of correctness bug that a two-store claim creates, and the profiling result points at connection hold time as the thing to measure before blaming the database.
send feedback on this story