Timeline
2005
2010
- Bing: from CPP to DotNET
2011
- Twitter: from Ruby to Scala
- UrbanAirship: from MongoDB to PostgreSQL
- Mixpanel: from Erlang to Python
2012
- LinkedIn: from Ruby to NodeJS
- MoovWeb: from Unknown to Go
- NTPPool: from Perl to Go
- DLGoogle: from CPP to Go
- Bitly: from Python/C to Go
- SoundCloud: from Ruby to Go
- SmartyStreets: from DotNET to Go
- Toggl: from Ruby to Go
- Shareaholic: from MongoDB to Riak
- DigiDoc: from MongoDB to PostgreSQL
- Etsy: from MongoDB to MySQL
- TekPub: from MongoDB to PostgreSQL
- TargeterApp: from NodeJS to Ruby
- Dropbox: from JavaScript to CoffeeScript
2013
- PayPal: from Java to NodeJS
- Koding: from NodeJS to Go
- Iron.io: from Ruby to Go
- Zalora: from PHP to Go
- TimeHop: from Ruby to Go
- CanonicalJuju: from Python to Go
- Facebook: from PHP to Hack
- Blippex: from AWS to OVH
2014
- Instill: from AngularDart to Polymer
- Workia: from ActionScript to Dart
- TrustWave: from ActionScript/Flex to Dart
- Facebook: from Erlang to CPP
- Grab: from Ruby/NodeJS to Go
- CloudFlare: from PostgreSQL to CitusDB
2015
- Auth0: from Apache_Kafka to ZeroMQ
- Pinterest: from Java to Elixir
- PresidentUniversity: from PHP/MySQL to Go/PostgreSQL
- UserLike: from MySQL/MongoDB to PostgreSQL
- Olery: from MongoDB to PostgreSQL
- CrowdStrike: from Scala to Go
- DockYard: from Ruby to Elixir
- Parse: from Ruby to Go
- Marriot: from Unknown to Couchbase
2016
- CrowdStrike: from Scala to Go
- Tokopedia: from Perl to Go
- Uber: from PostgreSQL to MySQL
- Uber: from NodeJS to Go/Java
- Uber: from Python to Go
- Digg: from NodeJS to Go
- Google AdWords: from GWT to Angular/Dart
- Slack: from PHP to Hack
- Sky: from Oracle to Couchbase
- Amadeus: from Oracle to Couchbase
- AppsFlyer: from Druid/MongoDB/Redis/Cassandra/Redshift to SingleStore
- Dropbox: from AWS to Self-Managed
2017
- BleacherReport: from Ruby to Elixir
- UpGuard: from JRuby to Go
- Movio: from Scala to Go
- Discord: from MongoDB to Cassandra
- Uber: from Riak/Solr to Cassandra
- Swat.io: from MySQL to PostgreSQL
- Poki: from PHP to Go
- Stream: from Python to Go
- Baidu: from MySQL to CockroachDB
- Boxzilla: from PHP to Go
- GAEA: from MongoDB/MySQL to TiDB
- Shippable: from Go to NodeJS
- Shippable: from MongoDB to PostgreSQL
- GeekyAnts: from ReactNative to Flutter
- Yuanfudao: from MySQL to TiDB
- Dropbox: from CoffeeScript to TypeScript
- Manage: from MySQL/Hadoop/Hive/Kafka to SingleStore
- BlueShift: from MSSQLServer to SingleStore
- Myntra: from Redshift to SingleStore
- TreeScale: from Python to Go
2018
- AppTree: from Java/Kotlin/ObjC/Swift to Dart
- SendGrid: from Perl/Python to Go
- Bukalapak: from Ruby/MySQL to Go/MongoDB/ElasticSearch/CloudSQL
- Centrifugo: from Python to Go
- TheGuardian: from MongoDB to PostgreSQL
- CloudFlare: from CitusDB to Clickhouse
- Github: from jQuery to JavaScript
- Meituan: from MySQL to TiDB
- iQiyi: from MySQL to TiDB
- Yiguo: from Hadoop/MSSQLServer to TiDB
- Mobike: from MySQL to TiDB
- CashApp: from MySQL to Vitess
- Bing: from DotNET to DotNetCore
- PixelJets: from ElsticSearch/LogStash/Kibana/BigQuery to Clickhouse
- Insite360: from Redshift to SingleStore
- Areeba: from Hadoop/MariaDB to SingleStore
- Wag: from MySQL to SingleStore
- Fanatics: from ElasticSearch to SingleStore
- Pandora: from Hadoop to SingleStore
- Twitch: from Ruby to Go
- Kairos: from PHP to Go
2019
- AppsFlyer: from Clojure to Go
- Deliveroo: from Ruby to Rust
- Amazon: from Oracle to Aurora_PostgreSQL/DynamoDB
- 2FintechGiants: from Oracle to CockroachDB
- Codism: from Python to Go
- Comcast: from Cassandra to ScyllaDB
- Zhihu: from MySQL to TiDB
- JDCloud: from MySQL to TiDB
- NetEaseGames: from MySQL to TiDB
- Xiaomi: from MySQL to TiDB
- BookMyShow: from MSSQLServer to TiDB
- Trivago: from Kubernetes to Nomad
- Narvar: from DynamoDB/PostgreSQL to YugabyteDB
- PlumeDesignsInc: from MongoDB to YugabyteDB
- SkyElectric: from MySQL/MongoDB/NodeJS to PostgreSQL/ElasticSearch/ScyllaDB/Elixir
- Paytm: from ElasticSearch to Loki
- ContentSquare: from ElsticSearch/LogStash/Kibana to Clickhouse
- Sentry: from PostgreSQL/Redis to Clickhouse
- HashNode: from Nginx to Caddy
- CitizensBank: from Kubernetes to DockerSwarm
- Medaxion: from MySQL to SingleStore
- GoGuardian: from Druid to SingleStore
- AFortune50Company: from Hadoop to SingleStore
- diwo: from Redis/Cassandra to SingleStore
- KurtoSys: from Couchbase to SingleStore
- monday.com: from ElasticSearch to SingleStore
- GumGum: from Cassandra to ScyllaDB
- Insider: from Ruby to Go
- Codism: from Python to Go
- Twitch: from EmberJS to React
2020
- Discord: from Go to Rust
- HSBC: from DB2 to MongoDB
- UnnamedUSWirelessCarrier: from Oracle to PostgreSQL
- ListenBrainz: from InfluxDB to TimescaleDB
- Dropbox: from Nginx to Envoy
- Dropbox: from Python to Rust
- Repustate: from Python to Go
- SimilarWeb: from NodeJS to Go
- PayPal: from CPP to Go
- Discord: from Cassandra to ScyllaDB
- Weblove: from React to Svelte
- PalFish: from MongoDB to TiDB
- Shopee: from MySQL to TiDB
- WeBank: from MySQL to TiDB
- ChinaTelecomBestpay: from Oracle to TiDB
- U-Next: from MySQL to TiDB
- ZTOExpress: from OracleExadata to TiDB
- Xiaohongshu: from MySQL to TiDB
- BankOfBeijing: from Unknown to TiDB
- BankOfChina: from MySQL to TiDB
- ZhuanZhuan: from MySQL to TiDB
- BIGO: from MySQL to TiDB
- VNG/ZaloPay: from MySQL to TiDB
- VIPKid: from MySQL to TiDB
- Kroger: from PostgreSQL to YugabyteDB
- Censys: from PostgreSQL to YugabyteDB
- Justuno: from MSSQLServer/Cassandra to YugabyteDB
- Xignite: from MSSQLServer to YugabyteDB
- Voiceland: from PostgreSQL/MSSQLServer to YugabyteDB
- Jutsuno: from Cassandra/Neo4j/MSSQLServer/CockroachDB to YugabyteDB
- Manetu: from Cassandra to YugabyteDB
- BRIKL: from DynamoDB to YugabyteDB/Hasura
- StadiaMaps: from CockroachDB to ScyllaDB
- Roblox: from Windows to Linux/Nomad
- Rekki: from Elixir to Go
- Tubber: from PHP to Go
- EBay: from ApacheDruid to Clickhouse
- Shippo: from PostgreSQL to Aurora
- Nucleus: from MariaDB to SingleStore
- AMajorOilAndGasCompany: from ElasticSearch to SingleStore
- TapJoy: from MySQL to SingleStore
- ARNES: from InfluxDB to VictoriaMetrics
- DevOpsProdigy: from MySQL to Clickhouse
- MyWorld: from Cassandra to CockroachDB
- PlotProjects: from MongoDB to PostgreSQL
- SpaceCloud: from gRPC to GraphQL
- Sudo: from React to Svelte
- LoginRadius: from NodeJS to Go
2021
- KhanAcademy: from Python to Go
- ownCloud: from PHP to Go
- Percona: from Prometheus to VictoriaMetrics
- Aluma: from C# to Go
- Olery: from MongoDB to PostgreSQL
- NitroKey: from Ubuntu_Core to Debian
- Slack: from HAProxy to Envoy
- Github: from Ruby to Go
- GumGum: from Cassandra to ScyllaDB
- SvelteKit: from RollUp/SnowPack to Vite
- ReplIt: from WebPack to Vite
- GitPod: from React/Gatsby to SvelteKit
- NinjaVan: from MySQL to TiDB
- Meituan: from MySQL to TiDB
- AutoHome: from MSSQLServer to TiDB
- 58.com: from MySQL to TiDB
- Chehaoduo: from MySQL to TiDB
- KunLun: from MySQL to TiDB
- GiG: from Redshift to Clickhouse
- Brex: from Elixir to Kotlin
- Storj: from Python to Go
- CoinBase: from Native to ReactNative
- Archive.org: from Kubernetes to Nomad/Consul
- Koyeb: from Kubernetes to Nomad/Firecracker/Kuma
- AccelByte: from Kubernetes to Nomad/Consul
- Expedia: from Cassandra to ScyllaDB
- Grab: from Cassandra to ScyllaDB
- ReadyForSky: from Redis to Tarantool
- Conductor: from Kubernetes to Nomad
- Uber: from ElsticSearch/LogStash/Kibana to Clickhouse
- ClickHouse: from ZooKeeper to ClickhouseKeeper/NuRaft
- Wallaroo: from Pony to Rust
- ContentServ: from Cassandra to ScyllaDB
- Etsy: from JavaScript to TypeScript
- JD.com: from MySQL to TiDB
- HuyaLive: from MySQL to TiDB
- LevelUpTutorials: from React to Svelte
- Voucherify: from MongoDB to PostgreSQL
- Fathom: from MySQL/Redis/DynamoDB to SingleStore
- GrooveX: from Thanos to VictoriaMetrics
- Percona: from Prometheus to VictoriaMetrics
- SimilarWeb: from NodeJS to Go
- DoorDash: from Python to Kotlin
- WeWatch: from MongoDB to PostgreSQL
- CodeSignal: from MongoDB/Meteor to Redis
- Sequoia: from ElasticSearch to Rockset
- TimeFlow: from Druid to Clickhouse
- ToolJet: from Ruby to NodeJS
- Dream11: from Elasticache_Redis to Aerospike
- AirTel: from Oracle_TimesTen to Aerospike
- PostHog: from PostgreSQL to Clickhouse
2022
- Factors.ai: from PostgreSQL to SingleStore
- Prismatic.io: from AWS_Lambda to Amazon_ECS
- Fleet: from AWS to Hetzner
- Ntop: from nIndex to Clickhouse
- Etsy: from React to Preact
- ReviewBunny: from React to RubyOnRails
- AntMoney: from PostgreSQL to SingleStore
- CaptainMetrics: from MongoDB to SingleStore
- SeventhSense: from Amazon_Kinesis/Kafka to RedPanda
- Hashura: from NodeJS to Go
- Kiwi: from PostgreSQL/Cassandra to ScyllaDB
- Rakuten: from Cassandra to ScyllaDB
- Wipro: from HBase to Aerospike
- nhost: from PostgreSQL to PostgreSQL/Kubernetes
- Prerender.io: from AWS to Self-Managed
- Umes: from Go/GraphQL to TypeScript/Prisma/tRPC
- K-Optional: from Firebase to Supabase
- Contexte: from React to HTMX
- Rakuten: from RedHat to RockyLinux
- NucleusData: from MariaDB to SingleStore
- Rolebase: from Firebase to Nhost
- Jamf: from Java to Go
- TheirStack.com: from PostgreSQL to Clickhouse
- Matrix: from Kafka to NATS
- CloudFlare: from ElasticSearch to Clickhouse
2023
- HiFi: from BigQuery to Clickhouse
- RisingWaveLabs: from CPP to Rust
- Vercel: from Go to Rust
- Discord: from Cassandra to ScyllaDB
- RocLang: from Rust to Zig
- 37Signals: from Kubernetes to mrsk
- CultureAmp: from Elm to React
- ApiGear: from NodeJS to Go
- Prequel: from RabbitMQ to PostgreSQL
- Trendyol: from Scala to Go
- AmazonPrimeVideo: from AWS_Lambda to Amazon_EC2/Amazon_ECS
- Svelte: from TypeScript to JavaScript/JSDoc
- ValTown: from Supabase to PostgreSQL/Render
- ChessCraft: from MongoDB to PostgreSQL/Redis
- Fly.io: from Nomad to flyd
- CodeDamn: from Prisma/MongoDB to PostgreSQL
- LinkedIn: from JSON to ProtoBuf
- Bookshop.org: from RubyOnRails to Go/Encore
- Lizza: from Firebase to Encore
- InfluxData: from Go to Rust
- FileWave: from ZeroMQ to NATS
- StackOverflow: from jQuery to Svelte
- NicelandVPN: from Electron to Wails.io
- DoorDash: from Aurora_PostgreSQL to CockroachDB
- Levenue: from SvelteKit to Go/HTMX
- Lyft: from Druid to Kafka/Clickhouse
- Tencent: from Clickhouse to ApacheDoris
- Ongage: from MySQL to Clickhouse
- Digger: from Python to Go
2024
- eFishery: from Amazon_CloudFront to CloudFlare
- Vercel: from Go to Rust
- Ramp: from PostgreSQL to Clickhouse
- Infiscal: from MongoDB to PostgreSQL
- Reddit: from S3_metadata to Aurora_PostgreSQL
- Coralogix: from PostgreSQL to ScyllaDB
- Fablehenge: from React to Svelte
- Corsearch: from MySQL to Clickhouse
- Uber: from DynamoDB to LedgerStore
- 37signals: from Mac to Linux
- Beehiiv: from PostgreSQL to Clickhouse
- Bonree: from ZooKeeper to ClickhouseKeeper
- CommonRoom: from PostgreSQL to Clickhouse
- Shopee: from Druid/Hive/Presto to Clickhouse
- OpenMeter: from PostgreSQL/Kafka/kSqlDB to Clickhouse
- trip.com: from ElasticSearch to Clickhouse
- Didi: from ElasticSearch to Clickhouse
- Figma: from Skew to TypeScript
2025
- FlockSafety: from Redshift to Clickhouse
- EpicGames: from DynamoDB to ScyllaDB
- DigitalTurbine: from DynamoDB to ScyllaDB
- DaggerIO: from React to Go/WASM
- PayU: from Consul to Raft
- Honeybadger: from Sidekiq to Kafka
- Tractian: from MongoDB to ScyllaDB
- Slice: from MongoDB to PostgreSQL
- AVEQ: from Ruby/RubyOnRails to TypeScript/Express
- Cloudflare Developer Documentation: from Go/Hugo to TypeScript/Astro
- Aquis Stock Exchange: from Self-Managed to Cloud/AWS
- Checkly: from Heroku to AWS
- Microsoft TypeScript Compiler: from TypeScript to Go
Top 10 From
- MySQL: 40
- MongoDB: 26
- PostgreSQL: 19
- Ruby: 17
- Cassandra: 16
- Python: 15
- NodeJS: 11
- React: 9
- PHP: 9
- ElasticSearch: 8
Top 10 To
- Go: 57
- TiDB: 32
- Clickhouse: 25
- SingleStore: 23
- PostgreSQL: 22
- ScyllaDB: 16
- YugabyteDB: 10
- Rust: 8
- TypeScript: 6
- Nomad: 6
Top 10 Migration
- MySQL to TiDB: 25
- MongoDB to PostgreSQL: 16
- Python to Go: 13
- Cassandra to ScyllaDB: 10
- Ruby to Go: 10
- NodeJS to Go: 9
- PHP to Go: 7
- PostgreSQL to Clickhouse: 7
- Kubernetes to Nomad: 5
- MySQL to SingleStore: 5