Uber System Design Interview Experience – Chat Application Design
Question Details
System Design Objective Design a scalable instant messaging system comparable to Facebook Messenger that supports real-time communication. The design must address the following core functional req
Full Details
System Design Objective Design a scalable instant messaging system comparable to Facebook Messenger that supports real-time communication. The design must address the following core functional requirements: * 1:1 and Group Conversations: Enable low-latency messaging between two individuals and multiple participants. *
Message State Tracking: Implement delivery reliability with status updates for "Sent," "Delivered," and "Read." *
Offline Support: Ensure messages are queued and delivered once an offline user reconnects. *
Message History: Provide persistent storage for retrieving past conversations. *
Group Management: Allow users to create groups and add or remove members.
Technical Requirements The solution must detail the following technical aspects: *
System Architecture: Outline the high-level infrastructure, including Load Balancers, API Gateways, and WebSocket servers for bi-directional communication. *
Server-Side Storage: Define the database strategy, distinguishing between transient data (user presence) and persistent data (message history), utilizing appropriate SQL or NoSQL technologies (e.g., HBase, Cassandra, or DynamoDB). *
API Design: Specify the endpoints or socket events required for sending messages, retrieving history, and managing conversation metadata. *
Data Models: Create the schema definitions for Users, Messages, Conversations, and ConversationParticipants to support efficient querying. *
Component Interaction: Explain the data flow and how components work together to route a message from a sender to an online or offline recipient.
About This Question
This is a reported interview question from a uber interview for a swe role during the system design round reported in 2025.
It covers the following topics: Sql, System Design .