Design Whatsapp
Overview– WhatsApp is a messaging service that allows users to send and receive encrypted messages and calls from their phones and computers. WhatsApp was famously originally built on Erlang (no longer!) and renowned for handling high scale with limited engineering and infrastructure outlay. Requirements– Start group chat send/receive messages send/receive media Access messages after I've been offline. Non-Functional Requirements— Delivered with low latency < 500ms Guarantee delivery messages Billions of users, high throughput Messages not stored unnecessarily. Fault-tolerant Core Entities— Messages Users Chat Client API- Commands Sent Commands Received createChat - newMessage sendMessage - chatUpdate createAttachment modifyParticipants High-Level Design–