Overview
Design a chat platform that runs in several regions and handles one-to-one chats, large group chats, online status, delivery receipts, and end-to-end encryption.
Requirements
- 01Deliver one-to-one and group messages in under 100ms
- 02Track Sent, Delivered, and Read receipts
- 03Show online status and send push notifications to offline recipients
- 04Store chat history so any conversation can be read back in order, fast
- 05Handle 500M active users a day sending billions of messages
Concepts in play
WebSocketsPubSubCassandraPush NotificationsPresence