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.