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.12 What would you say in the last five minutes?
3 min read+10 XP
Step 6: Wrap-up (5 minutes)
- Bottlenecks: connection count (gateway tier), message writes (store sharded by chat), receipts in large groups (aggregation).
- Single points of failure: none central; gateways are interchangeable; chat shards are replicated with failover (Chapter 14); session registry entries are rebuilt on reconnect.
- Correctness: client IDs for de-duplication, per-chat sequence numbers for order, store-then-deliver for no loss, per-device cursors for sync.
- Privacy: end-to-end encryption means servers route ciphertext; metadata (who talks to whom, when) still needs protection and minimal retention.
- Next with more time: voice and video calls (separate media servers, WebRTC), message editing and deleting (as new events in the chat), backups, and spam/abuse controls that work without reading message content.
Memory code: "Ordered, de-duplicated, stored before delivered, synced by cursor."