Medium
Atlassian

Design a Cross-Product Tagging System System Design Interview

Design a shared tagging service that lets users apply tags to entities across multiple Atlassian products, with consistent search and deduplication.

1. Problem Statement

Design a tagging system that lets users attach tags to different types of entities (such as issues, documents, or repositories) across multiple products. The system should support searching by tag and keeping tags consistent. Where would you start?

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Design a Cross-Product Tagging System"]
    A --> F1["Tag entity model canonical tags, aliases, namespacing"]
    A --> F2["Tagging API across multiple entity types issues, pages, repos"]
    A --> F3["Tag normalization and deduplication"]
    A --> F4["Search by tag full-text, prefix, faceted"]
    A --> F5["Eventual consistency when entities are deleted or merged"]
    A --> F6["Scale - tag fan-out and reverse index"]

3. Key Focus Areas

  • 1
    Tag entity model (canonical tags, aliases, namespacing)
  • 2
    Tagging API across multiple entity types (issues, pages, repos)
  • 3
    Tag normalization and deduplication
  • 4
    Search by tag (full-text, prefix, faceted)
  • 5
    Eventual consistency when entities are deleted or merged
  • 6
    Scale: tag fan-out and reverse index

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Start Interview

Core Concepts

System DesignSearch and IndexingCross-Product PlatformData Modeling