System Design: Chat Application
Design a real-time messaging system like WhatsApp
Requirements
Functional
- Send/receive messages
- Group chats
- Message history
- Online status
Non-Functional
- Low latency (< 100ms)
- High availability
- Message ordering
- End-to-end encryption
System Components
WebSocket Server
Real-time bidirectional communication
Message Queue
Kafka for message delivery
Database
Cassandra for message storage
Presence Service
Track user online status
Coming Soon
Detailed architecture diagrams, database schema, API design, and scalability considerations.