TomoLink
CompaniesInfosysSystem 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] | Infosys System_design | TomoLink