Design a scalable real-time chat system
LyftSoftware Engineer · OnsiteLast updated
This question evaluates skills in designing scalable real-time distributed systems, covering API design, message ordering and idempotency, fan-out strategies, storage tiers, indexing, sharding and replication, consistency vs.
Design a scalable real-time chat system supporting 1:1 and group messaging. Cover: API design (send, receive, ack), message ordering and idempotency, read receipts and typing indicators, online presence, fan-out architecture (write vs read), storage (hot vs cold, media handling), indexing and data model, replication and sharding strategy, consistency vs availability trade-offs, offline delivery and retries via push notifications, rate limiting and spam/abuse controls, end-to-end encryption considerations, back-of-the-envelope capacity estimates for 100M DAU, monitoring, observability, and disaster recovery.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.