Atlassian System Design Interview: Cross-Product Content Tagging

Based on questions reported for Atlassian interviews

The interviewer opens

Hi, and thanks for joining. Welcome to your interview for the software engineer role at Atlassian. We'll design a system together, and you can sketch on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, the Pause button at the top right will pause the interview.

The problem is a cross-product content tagging service, the kind of thing that ties Jira and Confluence together for customers. It's in the Problem tab, so please read through it and ask me anything you'd like clarified before you start drawing.

The problem

Design a service that lets users add tags to content across Atlassian products, such as Jira issues and Confluence pages, so anyone viewing an item sees its tags and anyone can find every item carrying a given tag.

Must do

  • Add and remove tags on an item from any product
  • Show all tags on a given item
  • List all items carrying a given tag, across products
  • Tags are shared across products within one customer site

Must hold

  • Viewing an item's tags must feel instant and stay available
  • Tag listings must stay fast to page through