Katkat

Design a Chat Application with Durable Conversation History

HarveyFrontend Engineer · Other

Last updated

Design persistent real-time chat with conversation ordering, idempotent sends, paginated history, optimistic state, delivery receipts, and reconnect catch-up.

Design a chat application with persistent conversations and real-time messaging. Explain the client state, APIs, delivery path, and reconnect behavior.

Constraints & Assumptions

The source explicitly names chat-system design but does not specify group size, encryption, attachments, or delivery guarantees. State a bounded initial scope, such as text messages in small conversations, and identify how it would grow.

Clarifying Questions

What ordering is required within a conversation? Are edits and read receipts needed? How should offline clients catch up? What does sent versus delivered mean?

Follow-up questions

  • What if the send response is lost after persistence? How do multiple devices converge? What changes for a very large group or attachments?