We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
Long-lived connections, ordering guarantees, presence, and the difference between 1:1 chat and a 50K-member group.
Design the backend for a real-time chat product. Users send messages to each other (1:1 and groups), see who's online, get read receipts and typing indicators, receive push notifications when offline, and have access to message history.
This is one of the most layered system design questions because it spans long-lived connection management (WebSockets), ordering and consistency (per-conversation), presence (a stateful global service), push notifications (third-party integrations), and storage (hot vs cold tiering).
Asking these before diving into a solution is the difference between a "hire" and a "no signal" rating. Pick the questions whose answers would change your design.
Capacity estimation · architecture with all 8 components explained · 6 deep dives · trade-off analysis · 8 common follow-up questions
Get full access to gitGood.dev with a subscription.
Try everything free for 10 days. Cancel anytime.
10-day trial, then $5/mo - or $40/yr ($3.33/mo, save 33%). Cancel anytime.
Reading is the floor. The interview signal is in walking through this live with someone probing follow-ups. Use the AI mock interview to practice talking through requirements, architecture, and trade-offs out loud.
Start an AI mock interview →