How Discord Moved Trillions of Messages From Cassandra to ScyllaDB
Discord's careful, dual-write migration off Cassandra to ScyllaDB, and the parallel move to Rust, both driven by the same enemy: GC pause tails.
Category
6 articles
Discord's careful, dual-write migration off Cassandra to ScyllaDB, and the parallel move to Rust, both driven by the same enemy: GC pause tails.
How Discord's voice chat scales using selective forwarding units, UDP-based media transport, and globally distributed voice servers close to users.
From swapping Go for Rust in the Read States service to speeding up Elixir's WebSocket handling, how Discord chose specific hot paths for a rewrite.
How Discord keeps online status and per-channel read state consistent across millions of simultaneously connected clients without collapsing under fan-out.
Why Discord outgrew a single MongoDB replica set for message storage and moved to Cassandra years before its later ScyllaDB migration.
How the Erlang VM's lightweight process model and fault isolation made Elixir the right fit for Discord's connection-heavy real-time gateway.