6. Chat System
Easy
Design a system that supports group chat
- Functional Requirements
- Users can send and receive text based messages on their mobile apps
- All members of a group can see all messages that are sent to that group
- Nonfunctional Requirements
- Message latency should be less than 400ms
- Groups can have a maximum of 100 people
- Each message should be less than 50,000 characters long
- Assumptions
- Assume we only support text
- Encryption not required
- Messages should never expire
- Online presence doesn't need to be supported
- We do not need to support push notifications
- Each user connection will require 10k of memory
- We are given a data store containing user profile information that is indexed on a user ID
- Estimated Usage
- 40 Million Daily Active Users
- 80 Million messages sent per day
- The read to write ratio is 1:1
- Smooth usage
Seen this question in a real interview before?
Not all editor features are supported on mobile