Design a Chat System (WhatsApp/Slack)
Design a real-time messaging system supporting 100M daily active users with 50M concurrent connections, sub-100ms message delivery, and 99.99% availability.
1.1 Clarifying Questions & Requirements
1.2 Back-of-the-Envelope Calculations
Traffic & Message Volume
Storage Requirements
Infrastructure Estimates
Monthly Operating Costs
Interview Practice Questions
Practice these open-ended questions to prepare for system design interviews. Think through each scenario and discuss trade-offs.
Enterprise Chat Platform: Design a Slack-like enterprise chat platform supporting 100K+ organizations with channels, threads, file sharing, integrations, and enterprise security. Address multi-tenancy, compliance, search, and custom workflows.
Global Voice & Video Integration: Add voice calls, video conferencing, and screen sharing to the chat system. Handle 10M+ concurrent calls with global routing, quality optimization, recording, and real-time features like live captions.
AI-Powered Chat Features: Integrate AI for smart replies, language translation, content moderation, sentiment analysis, and chat summarization. Address real-time processing, model serving, privacy, and user control over AI features.
Offline-First Mobile Experience: Design offline messaging with conflict resolution, optimistic UI updates, media sync, and seamless online/offline transitions. Handle message ordering, duplicate prevention, and storage optimization.
Cross-Platform Protocol Design: Create a unified messaging protocol supporting web, mobile, desktop, IoT devices, and third-party integrations. Address versioning, backward compatibility, feature negotiation, and efficient serialization.
Real-time Collaboration Features: Add collaborative editing, shared whiteboards, live cursors, and co-browsing to chat. Handle operational transformations, conflict resolution, permissions, and 100ms latency requirements for smooth UX.