Practice School Beta

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.