Patterns
- Fan-out
- WebSocket Pattern
- Presence Pattern
Expected topics
- Facebook Messenger
- Fan-out
- WebSocket Pattern
- Presence Pattern
- Client A
- WebSocket instance A
- instance B
- group chat
- online / offline status
- push
Self-check prompts
- What users, scale, latency, availability, and consistency requirements should you clarify for Facebook Messenger?
- What are the main APIs, data model, and request flow?
- Where is the main bottleneck around Fan-out, WebSocket Pattern, Presence Pattern, and how would you scale it?
- What failure mode matters most, and how do retry, recovery, and idempotency work?
- Which trade-off would you choose, what do you lose, and when would you change that decision?
Common mistakes
- Jumping into vendor names before clarifying requirements and scale.
- Listing components without explaining the end-to-end request flow.
- Leaving the bottleneck vague instead of quantifying capacity, partitioning, and recovery behavior.
- Mentioning trade-offs without choosing an option and explaining the condition that would change the decision.
- Ignoring hot fan-out paths, backpressure, and offline delivery behavior.