TomoLink
CompaniesTCSSystem DesignDesign a Chat System
System Design
HardReal-time Systems

Design a Chat System

60 minswebsocketsmessage-queuereal-time
60 mins
1 sections
websockets, message-queue

Requirements

Functional Requirements

  • One-on-one messaging
  • Group chats (up to 100 members)
  • Online/offline indicator
  • Push notifications
  • Message history storage
  • Media sharing (images, videos)

Non-Functional Requirements

  • Low latency delivery (< 100ms)
  • Highly available (99.99%)
  • Eventual consistency acceptable for message delivery
  • No message loss — at-least-once delivery

Scale

  • 50M daily active users
  • 40 messages per user per day = 2B messages/day
  • Average message size = 100 bytes
  • Storage = 200GB/day
Design a Chat System [Hard] | TCS System_design | TomoLink