WebSocket gateway
Every client keeps a persistent WebSocket for real-time events: messages, presence, typing indicators.
Advertisement
WebSocket gateway
Every client keeps a persistent WebSocket for real-time events: messages, presence, typing indicators.
Advertisement
SFU for voice
Selective Forwarding Unit forwards WebRTC streams between participants. Doesn't mix — clients render mix locally. Enables 100+ speaker channels.
Elixir for guilds
Guild logic in Elixir. One Erlang process per server (guild). Handles up to 200K members per guild.
Cassandra for messages
Trillions of messages. Sharded by channel_id. Deep dive: Discord's own engineering blog on scaling to trillions.
Global voice with regional POPs
Voice servers in 13+ regions. Client picks nearest for low latency. Cross-region calls are rare.