bugfree Icon
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course

System Design Question

Design a Tagging Service

bugfree Icon

Hello, I am bugfree Assistant. Feel free to ask me for any question related to this problem

Functional Requirements:

  • Users can add tags to digital items (e.g., images, documents).
  • Users can remove or edit tags on their own items.
  • Users can search for items by tags.
  • The system should suggest tags based on existing tags or item content (optional, basic suggestions).
  • Tags should be normalized to avoid duplicates (e.g., case-insensitive, trimmed whitespace).

Non-Functional Requirements:

  • Scalability: Should support a large number of users and items.
  • Performance: Tag operations (add, remove, search) should be fast, ideally under a few hundred milliseconds.
  • Reliability: The service should be highly available and handle failures gracefully.
  • Security: Only authorized users can modify tags on their own items; user data should be protected.
  • Usability: APIs should be easy to use and well-documented.
  • Consistency: Tag data should be consistent after operations (no partial updates).

System Design Diagrams

Zoom In and Out via trackpad or posture