Lesson 9 of 17
38. Design a Chat App (WhatsApp)

38.8 How do delivery and read ticks work?

3 min read+10 XP

Asha sends; the server stores and acks (one grey tick); Ravi's devices ack delivery (two grey ticks); Ravi reads (blue).

Figure: three acknowledgements, each moving the tick forward.

  • One grey tick: the server stored the message (the ack with seq).
  • Two grey ticks: every recipient device has it. In the chapter's code, Ravi's phone acking isn't enough while his laptop hasn't; two ticks appear only after both ack.
  • Blue ticks: the recipient opened the chat past that message.

Efficiency:

  • Acks say "up to seq N", so one ack covers many messages.
  • The server forwards receipts to the sender's devices only when the combined state changes.
  • Read receipts are optional for users (a privacy setting); when off, the server never sends "read" for them.

Memory code: "Stored, every device has it, the person read it."