38. Design a Chat App (WhatsApp)
1
The interview prompt2
38.1 What do you ask first?3
38.2 How big is this, really?4
38.3 What are the doors?5
38.4 What do we store?6
38.5 What does the whole system look like?7
38.6 How does the WebSocket gateway work?8
38.7 How do message IDs and ordering work?9
38.8 How do delivery and read ticks work?10
38.9 How does offline delivery work?11
38.10 How does group chat work?12
38.11 How does media work?13
38.12 What would you say in the last five minutes?14
Score yourself15
Variations to practise16
Sources17
Code lab38. Design a Chat App (WhatsApp)
38.6 How does the WebSocket gateway work?
3 min read+10 XP
Step 5: Deep dives (10 minutes)
As in Chapter 21: gateways are thin servers that only hold connections, authenticate them, and pass messages to and from the chat service.
- About 2,000 gateways for 200 million connections at an assumed 100,000 each; event-driven servers (Erlang, Go, Netty) are the usual choice.
- A session registry maps
(user, device) → gateway, written on connect and expired by TTL if heartbeats stop. - The chat service sends a recipient's messages to their gateway (through the registry or a pub/sub backplane).
- Heartbeats detect dead mobile connections; reconnects use backoff with jitter; deploys drain gateways gradually.
Memory code: "Gateways hold sockets, the registry knows who's where."