Design a Notification System
Two products anchor this. Jira is Atlassian's issue tracker, where teams file and assign tickets and move them through a workflow. Confluence is its docs and wiki tool, where teams write and comment on pages. Both let you watch a piece of work and @mention a colleague, and both need to tell the right people when something changes. That telling is the system here. It looks small at first: publish an event, send an email. It stays that way right up until you count how many people one comment reaches, and how many ways each of them wants to hear about it.
The thing to establish early is that this is a write-amplifying, fan-out problem, not a request-response one. A single human action produces one event, but that event can turn into thousands of individual notifications once you resolve who is watching, and each of those can go to several channels. So the work is not "handle a request." The work is to take a stream of source events and expand each one against a set of subscribers. Then collapse the duplicates and noise that expansion creates, route what survives through each person's preferences, and deliver it reliably and fast. Every hard part in this design lives in that expansion and the cleanup after it.
- 1 diagram
- 5 sections
- about 46 min
Premium lessonAtlassian interview guide
These took digging.
What candidates walked out with, from 20,000+ reports, forum threads behind logins and write-ups in Chinese. Then solved step by step.
100 companies. Checked every month.
Unlock all 100 companies$49 a year · less than $1 a week · Cancel anytime
Atlassian interview guideKnow what Atlassian asks before you walk in.
21 coding · 5 system design · 15 behavioral questions
Get their questions first.
InterviewLegend is independent and not affiliated with or endorsed by any company it covers.