Design a tagging system and REST APIs

Read the full interview experience this question came from →

Quick Overview

This question evaluates a candidate's ability in RESTful API design, data modeling, concurrency control, idempotency, pagination, and indexing/search strategies for a multi-tenant tagging system. It is commonly asked in the system design category to assess architectural decision-making and both conceptual understanding and practical application of endpoints, schema, and edge-case handling.

Design a tagging system and REST APIs

Company: Atlassian

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a tagging system (similar to tagging pages/issues) with a strong focus on REST API design. Functional requirements: - Create a tag. - Rename a tag. - Delete a tag. - Attach/detach one or more tags to/from an entity (e.g., `page`, `issue`, etc.). - List tags for an entity. - Search entities by one or more tags (AND/OR semantics). Non-functional requirements: - Tags should be unique by name within a tenant/workspace. - Handle concurrency and idempotency for attach/detach. - Pagination for list/search endpoints. Deliverables: - Propose REST endpoints (request/response examples). - Data model / DB schema. - Indexing and query approach for tag search. - Edge cases (deleting a tag that is attached, renaming collisions, bulk operations).

Overview: This question evaluates a candidate's ability in RESTful API design, data modeling, concurrency control, idempotency, pagination, and indexing/search strategies for a multi-tenant tagging system. It is commonly asked in the system design category to assess architectural decision-making and both conceptual understanding and practical application of endpoints, schema, and edge-case handling.

Read the full Atlassian Software Engineer interview experience this question came from

|Home/System Design/Atlassian
Atlassian logo
Atlassian
Jan 5, 2026
mediumSoftware EngineerOnsiteSystem Design
10
0

Design a tagging system (similar to tagging pages/issues) with a strong focus on REST API design.

Functional requirements:

  • Create a tag.
  • Rename a tag.
  • Delete a tag.
  • Attach/detach one or more tags to/from an entity (e.g., page , issue , etc.).
  • List tags for an entity.
  • Search entities by one or more tags (AND/OR semantics).

Non-functional requirements:

  • Tags should be unique by name within a tenant/workspace.
  • Handle concurrency and idempotency for attach/detach.
  • Pagination for list/search endpoints.

Deliverables:

  • Propose REST endpoints (request/response examples).
  • Data model / DB schema.
  • Indexing and query approach for tag search.
  • Edge cases (deleting a tag that is attached, renaming collisions, bulk operations).

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...