Back to Academy
system design
Chat System
Design a real-time messaging system that supports one-on-one and group conversations. The core components include a message router that delivers messages to connected users, session management for tracking online status, chat rooms for group conversations, and message ordering using timestamps or sequence numbers. Key trade-offs include push versus pull delivery models, eventual versus strong consistency for message ordering, and storing messages per-user versus per-conversation. The system must handle users going offline and receiving missed messages upon reconnection.
Use Cases
- •Team collaboration tools like Slack or Microsoft Teams
- •Customer support live chat widgets
- •In-game real-time communication between players
- •Social media direct messaging features
Visualization
Implementation
Output
Click "Run Code" to see output...