Real Time Updates medium
TCP guarantees packet delivery. Why does a chat application (like WhatsApp) still need 'Application Level' ACKs (e.g., double blue ticks)?
- A TCP ACKs only confirm the OS kernel received the data. They don't confirm the app processed it or the user saw it.
- B TCP is unreliable on mobile.
- C To charge the user for data.
- D To decrypt the message.
Answer: A. TCP ACKs only confirm the OS kernel received the data. They don't confirm the app processed it or the user saw it.
Network delivery != Business delivery. The phone might receive the packet (TCP ACK sent), but the app might crash before writing it to the database. App-level ACKs confirm persistence and read-receipts.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- When a mobile app is closed/backgrounded, it cannot keep a WebSocket open. How does it receive real-time alerts (like 'New Message')?
- For a human user, what is generally considered the maximum acceptable latency for an interaction to feel 'Real-Time' (e.g., typing in a Google Doc)?
- If you want to update a news feed on a website every time a new article is published, what is the simplest (but least efficient) 'Real-Time' technique?
- In a persistent real-time connection, what is the purpose of a 'Heartbeat' or 'Ping/Pong' message?
- Why is Short Polling considered 'Chatty'?
- Server-Sent Events (SSE) are ideal for which type of real-time application?