PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Amazon

Design Music Search, Playlists, and Playback Controls

Last updated: Jul 22, 2026

Quick Overview

Design the domain model and service interfaces for music search, ordered playlists, and playback controls. The discussion covers canonical catalog data versus a search index, concurrent playlist edits, idempotent state transitions, multi-device command ordering, observability, and sensible service boundaries.

  • medium
  • Amazon
  • System Design
  • Software Engineer

Design Music Search, Playlists, and Playback Controls

Company: Amazon

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

# Design Music Search, Playlists, and Playback Controls Design the core application model and service interfaces for a music product. Users can search by song, artist, or album; create and edit playlists; and control a playback session with play, pause, and reset. Begin with a clear single-service design, then identify boundaries that would matter as usage grows. ### Constraints & Assumptions - A song can belong to an album and have one or more artists. - Search results must identify which entity matched and link to playable songs where appropriate. - Playlist ordering matters, and concurrent edits must not silently overwrite one another. - Play, pause, and reset must have defined behavior for repeated or out-of-order commands. - Media delivery details may be abstracted, but playback state and authorization may not. ### Clarifying Questions to Ask - Is search prefix, substring, or full-text, and what ranking signals are required? - Can playlists contain duplicate songs or be shared with other users? - Is playback state local to one device or synchronized across devices? - Does reset mean seek to the beginning while paused, or stop and clear the active track? ### Part 1: Domain Model and Interfaces Define the main entities, relationships, invariants, and APIs for search, playlists, and playback commands. #### What This Part Should Cover - Stable identities for songs, artists, albums, users, playlists, and playback sessions. - Ordered playlist entries with ownership and versioning. - Explicit playback state transitions and idempotent command semantics. ### Part 2: Search Explain how catalog changes become searchable and how a query across song, artist, and album fields is served and ranked. #### What This Part Should Cover - A canonical catalog store and a derived search index. - Entity-type-aware results, normalization, pagination, and freshness trade-offs. - Reindexing, deletion, and failure recovery. ### Part 3: Consistency, Testing, and Growth Describe concurrency controls, failure handling, observability, and where you would split the design if load increased. #### What This Part Should Cover - Optimistic concurrency or transactional edits for playlist ordering. - Playback-session ownership and command ordering. - Contract, state-machine, search-quality, and concurrency tests. - Metrics for search latency, index lag, edit conflicts, and invalid transitions. ### What a Strong Answer Covers - A coherent object and API design that satisfies all reported functions. - Clear source-of-truth versus derived-index responsibilities. - Defined concurrency and idempotency behavior rather than happy-path CRUD alone. - A simple initial architecture with justified seams for later scaling. ### Follow-up Questions - How would collaborative playlist editing change the consistency model? - How would you rebuild the search index without losing updates? - How would playback commands behave if two devices control the same session?

Quick Answer: Design the domain model and service interfaces for music search, ordered playlists, and playback controls. The discussion covers canonical catalog data versus a search index, concurrent playlist edits, idempotent state transitions, multi-device command ordering, observability, and sensible service boundaries.

Related Interview Questions

  • Design an Amazon Locker Service - Amazon (easy)
  • Architect an AI Chatbot for Enterprise Users - Amazon (medium)
  • High Availability and Failover for a Primary-Replica Database - Amazon (medium)
  • Object-Oriented Design: Snake Game - Amazon (medium)
  • Design a Library Management System (API and Schema) - Amazon (hard)
|Home/System Design/Amazon

Design Music Search, Playlists, and Playback Controls

Amazon logo
Amazon
May 29, 2026, 12:00 AM
mediumSoftware EngineerOnsiteSystem Design
0
0

Design Music Search, Playlists, and Playback Controls

Design the core application model and service interfaces for a music product. Users can search by song, artist, or album; create and edit playlists; and control a playback session with play, pause, and reset. Begin with a clear single-service design, then identify boundaries that would matter as usage grows.

Constraints & Assumptions

  • A song can belong to an album and have one or more artists.
  • Search results must identify which entity matched and link to playable songs where appropriate.
  • Playlist ordering matters, and concurrent edits must not silently overwrite one another.
  • Play, pause, and reset must have defined behavior for repeated or out-of-order commands.
  • Media delivery details may be abstracted, but playback state and authorization may not.

Clarifying Questions to Ask Guidance

  • Is search prefix, substring, or full-text, and what ranking signals are required?
  • Can playlists contain duplicate songs or be shared with other users?
  • Is playback state local to one device or synchronized across devices?
  • Does reset mean seek to the beginning while paused, or stop and clear the active track?

Part 1: Domain Model and Interfaces

Define the main entities, relationships, invariants, and APIs for search, playlists, and playback commands.

What This Part Should Cover Guidance

  • Stable identities for songs, artists, albums, users, playlists, and playback sessions.
  • Ordered playlist entries with ownership and versioning.
  • Explicit playback state transitions and idempotent command semantics.

Part 2: Search

Explain how catalog changes become searchable and how a query across song, artist, and album fields is served and ranked.

What This Part Should Cover Guidance

  • A canonical catalog store and a derived search index.
  • Entity-type-aware results, normalization, pagination, and freshness trade-offs.
  • Reindexing, deletion, and failure recovery.

Part 3: Consistency, Testing, and Growth

Describe concurrency controls, failure handling, observability, and where you would split the design if load increased.

What This Part Should Cover Guidance

  • Optimistic concurrency or transactional edits for playlist ordering.
  • Playback-session ownership and command ordering.
  • Contract, state-machine, search-quality, and concurrency tests.
  • Metrics for search latency, index lag, edit conflicts, and invalid transitions.

What a Strong Answer Covers Guidance

  • A coherent object and API design that satisfies all reported functions.
  • Clear source-of-truth versus derived-index responsibilities.
  • Defined concurrency and idempotency behavior rather than happy-path CRUD alone.
  • A simple initial architecture with justified seams for later scaling.

Follow-up Questions Guidance

  • How would collaborative playlist editing change the consistency model?
  • How would you rebuild the search index without losing updates?
  • How would playback commands behave if two devices control the same session?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Amazon•More Software Engineer•Amazon Software Engineer•Amazon System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.