Back to roadmap
Module 10 · End-to-End Design DrillsDay 09445 min

Drill: Messenger / WhatsApp

Realtime messaging with delivery guarantees and presence.

Day 094

Drill: Messenger / WhatsApp

User A
client
Conn server
service
Registry
datastore
Conn server
service
User B
client
Signal path
Connection server fleet + registry
User A
client
flow
Conn server
service
Conn server
service
flow
Registry
datastore
Conn server
service
flow
Conn server
service
Memory hook

Messenger / WhatsApp: realtime messaging with delivery guarantees and presence

Mental model

compose the pieces into a design story

Design lens

Connection servers are stateful; pin and replicate.

Recall anchors
Connection serversRouting/registryPersistence/order

Why it matters

Messenger systems use a fleet of connection servers (WebSocket/QUIC) routing messages between users via brokers, with durable storage for offline delivery and explicit ordering per conversation.

Deep dive

Connection server: terminates user sessions; pinned by user_id hash.

Routing: lookup target's connection server via registry.

Persistence: messages durable per conversation; ordered by clock or sequence.

Presence: TTL on Redis key; coarse 'online within last N seconds'.

Demo / scenario

Send a message between users in different regions.

  1. Sender's conn-server receives msg.
  2. Lookup recipient's conn-server (registry).
  3. Forward via internal RPC; persist to DB.
  4. Recipient connection delivers; offline gets push notification.

Tradeoffs

  • Connection servers are stateful; pin and replicate.
  • Ordering per conversation needs sequence numbers.
  • End-to-end encryption complicates server-side features.

Diagram

User A
Conn server
Registry
Conn server
User B
Connection server fleet + registry.

Mind map

Check yourself

Loading quiz…

Sources & further reading