Database migration: 7 real scaling case studies

7 of the 73 engineering write-ups in our database are tagged with the technique "database migration". They come from 5 companies (Discord, Shopify, Atlassian, Slack and Tailscale) and were published between 2017 and 2026. Stack that shows up most often in these stories: MySQL (3), Cassandra (2) and Vitess (2). Often combined with horizontal sharding (2). 5 of the 7 state concrete scale numbers, for example "$5.1 million sales/minute (Black Friday 2025 peak)" (Shopify). Each card below links to our short summary and the original post.

Shopify · 2026

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.

$5.1 million sales/minute (Black Friday 2025 peak)database migrationdual writesquery optimizationMySQLRedisProxySQL
Atlassian · 2025

Migrating the Jira Database Platform to AWS Aurora

Atlassian migrated about four million Jira databases from RDS Postgres to Aurora, balancing reliability, downtime and cost.

4 million databasesdatabase migrationmulti-tenancycost optimizationPostgreSQLAWS AuroraAWS RDS
Shopify · 2024

Horizontally scaling the Rails backend of Shop app with Vitess

Shopify's Shop app adopted Vitess to shard its Rails backend, covering keyspace design and the migration plan.

horizontal shardingdatabase migrationMySQLVitessRuby on Rails
Discord · 2023

How Discord Stores Trillions of Messages

Discord moved its message store from Cassandra to ScyllaDB and put Rust data services in front of it to coalesce hot-partition requests.

trillions of messagesdatabase migrationrequest coalescingdata services layerScyllaDBCassandraRust
Tailscale · 2022

Switching from etcd to SQLite: A Database Migration Story

Tailscale replaced etcd with SQLite plus Litestream replication for a simpler control-plane datastore.

simplificationdatabase migrationreplicationSQLiteLitestreametcd
Slack · 2020

Scaling Datastores at Slack with Vitess

Slack's multi-year migration from active-active MySQL pairs to Vitess, so data could be sharded by any key, not only workspace.

2.3 million QPShorizontal shardingdatabase migrationMySQLVitess
Discord · 2017

How Discord Stores Billions of Messages

Early story of Discord outgrowing MongoDB and moving messages to Cassandra with a channel+time-bucket partition key.

billions of messages120 million messages/daydatabase migrationdata modelingpartitioningCassandraMongoDB

Get new database migration scaling stories weekly

One email a week. No spam.

Subscribe

Companies in these stories

Browse all 87 topics →