Whiteboard exercise. Try the problem cold, then reveal the rubric to self-score.
Out of 10 points45 min whiteboardReference solution →
01
Prompt
Design Slack or Discord. Real-time team messaging with channels, DMs, threads, reactions, presence, file sharing. 10M concurrent WebSocket connections per region; channels up to 500k members (Discord large guilds).
Time budget: 45 min whiteboard. Draw architecture, estimate numbers, discuss tradeoffs.
02
Hints (progressive — click to reveal)
Hint 1
The hard part is the WebSocket gateway tier — tens of millions of long-lived connections. Stateful, sticky, connection-oriented. Different from REST.
Hint 2
Large channels break naive fan-out. A 500k-member channel can't push every message to every member's WebSocket.
Hint 3
Separate the durable message log (Cassandra) from the real-time notify fabric (Redis pub/sub). They have different consistency + latency needs.