How would you design a real-time chat system like WhatsApp?
Answer
Architecture: connection servers (WebSocket), chat servers, message storage, push notification service. Real-time: WebSocket for online users, push notifications for offline. Message flow: client -> server -> recipient's connection server or push. Storage: message DB (by conversation, time-partitioned), media storage (S3), message queues. Features: delivery receipts (sent, delivered, read), group chat (fan-out), presence (online status). Scale: shard by user ID, connection affinity, message ID generation (Snowflake). E2E encryption: client-side encryption, key exchange. Offline: message queue per user.
Master These Concepts with IIT Certification
175+ hours of industry projects. Get placed at Bosch, Tata Motors, L&T and 500+ companies.