Discord·Software Engineer·Onsite - System Design / Architecture
- Design a Slack-style messaging platform supporting workspaces, public and private channels, DMs, threaded messages, mentions, search, presence indicators, and notifications.
- How would you index messages to support fast channel scrolling, full-text search, and unread counts?
- Walk through your database choice for storing messages: relational, NoSQL, or a log-plus-KV split. How would you partition by workspace or channel?
- Describe the fan-out path for a sent message: how does it reach all channel members, including offline users and mobile push, and how do unread counts get updated along the way?
“The surface area is massive so I tried to scope it fast and pick a few pillars to go deep on.”