Why did Discord keep switching its entire tech stack? - From Elixir to Python, Go, and now Rust — this is the real story behind how Discord evolved its backend over the last 11 years.
When Discord launched, they built their real-time messaging with Elixir because of its powerful BEAM virtual machine. It’s the same technology that powers WhatsApp’s backend — super efficient at handling thousands of messages and gracefully restarting processes when things go wrong.
They used Python for their APIs and Go for microservices. But during the 2020 pandemic boom, when Discord suddenly hit 100 million monthly active users, Go started causing serious problems. The issue? Go forces a garbage collection run every 2 minutes, no matter what. After trying (and failing) to fix it multiple times, they made a big decision — they rewrote that critical part in Rust.
And not just any Rust… they actually used Nightly Rust at first because the stable version didn’t have proper async support yet.
Since then, Discord has been going all-in on Rust. They rewrote their Media Proxy in Rust and saw a 22% improvement in latency. Even earlier, in 2019, they used Rust to solve a tricky data structure problem that dropped processing time from 170 milliseconds down to just 1 millisecond. That was probably the moment that convinced them Rust was worth betting on.
They’ve also changed databases multiple times — starting with MongoDB, then moving to Cassandra as they grew, and eventually switching to ScyllaDB combined with Rust services to handle trillions of messages.
On the frontend side, they started with React Native for iOS and native Android, then later brought React Native to Android too. Surprisingly, Electron.js for desktop is the only thing that has stayed the same since day one.
If you’re into system design, backend architecture, or just love hearing how massive apps scale, this video breaks down all the interesting (and sometimes painful) technical decisions Discord had to make.
What do you think — is Rust the future for big tech companies? Or would you stick with Go? Let me know in the comments!
If you enjoyed this, make sure to like and subscribe for more deep dives into real-world engineering stories. See you in the next one!
#Discord #Rust #Elixir #SystemDesign #Backend #TechStack