How Discord Migrated Trillions of Messages From Cassandra to ScyllaDB
ScyllaDB = Cassandra reimagined in C++
๐๐๐ฒ ๐๐ซ๐๐ก๐ข๐ญ๐๐๐ญ๐ฎ๐ซ๐
ยป Shard-per-Core โ Each CPU core gets dedicated data partition + memory
ยป Seastar Framework โ C++ async framework, zero-copy networking
ยป Storage โ In-memory memtables โ immutable SSTables on disk
ยป Consensus โ Optimized Paxos for consistency across replicas
ยป Communication โ Gossip protocol for cluster coordination
๐๐ข๐ฌ๐๐จ๐ซ๐'๐ฌ ๐๐ก๐๐ฅ๐ฅ๐๐ง๐ ๐
ยป 177 Cassandra nodes storing trillions of messages
ยป Hot partitions causing 40-125ms p99 read latency
ยป Unpredictable performance during traffic spikes
๐๐ข๐ ๐ซ๐๐ญ๐ข๐จ๐ง ๐๐๐ฌ๐ฎ๐ฅ๐ญ๐ฌ
ยป Nodes โ 177 to 72 (60% reduction)
ยป Read Latency โ 40-125ms to 15ms p99
ยป Write Latency โ 5-70ms to 5ms p99
ยป Storage โ 9TB per node (2x capacity)
ยป Migration Time โ 9 days (custom Rust tool)
ย ๐๐๐ฒ ๐๐๐ง๐๐๐ข๐ญ๐ฌ
ยป No garbage collection issues (vs Java Cassandra)
ยป Linear scalability with core count
ยป Full CQL compatibility for easy migration
ยป Eliminated operational firefights
ScyllaDB's C++ foundation + shard-per-core design = predictable performance at scale


