Design Slack-like messaging platform
OpenAISoftware Engineer · Technical ScreenLast updated
This question evaluates a candidate's ability to design scalable, secure, real-time messaging systems, testing competencies in distributed systems, data modeling, API design, storage and sharding strategies, search indexing, and notification delivery.
Design a Slack-like team collaboration product.
Core features:
- Workspaces (tenants), users, and channels (public/private)
- Direct messages (1:1 and small groups)
- Send/receive messages in real time (web + mobile)
- Message history persistence and sync across devices
- Search messages within a workspace
- Notifications (mentions, DMs, channel activity)
Non-functional requirements:
- High availability and low latency for message delivery
- Scales to many workspaces and very large channels
- Reasonable consistency guarantees (ordering within a channel)
- Security/isolation across workspaces
Deliver:
- High-level architecture
- Key APIs and data model
- Real-time delivery mechanism
- Storage/sharding strategy
- How search and notifications work
- Major trade-offs and bottlenecks
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.