# Design a playlist service: system design interview question

> Shared ordered playlists need clear conflict rules, stable entry identity, efficient page reads, and reliable change recovery.

Source: https://sysround.com/questions/design-playlist-service
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service where users create, share, and edit ordered media playlists together. The service must support concurrent edits and very large playlists without losing updates."

## What to clarify first

- Entry behavior
- Access and shares
- Scale and playlist size
- Traffic and read:write ratio
- Latency
- Pages and view behavior
- Consistency and availability
- Live changes and reconnect
- Durability and retries
- Excluded work

## Scope of a strong answer

Core requirements:

- Create playlists and add, remove, or move media entries.
- Read large playlists in small pages.
- Share playlists with view or edit access.
- Apply concurrent edits without silent data loss and show changes to other users.

Usually out of scope:

- Media upload, storage, and playback
- Media search and recommendations
- Offline edits and later merge
- A fixed snapshot across a complete playlist export

## What interviewers probe

### Concurrent edits

Two valid user actions can refer to the same entry or position. Retries must not create duplicate entries or overwrite another edit.

### Large playlists

A million-entry playlist makes full reads and position rewrites expensive. Repeated edits at one position can exhaust gaps in an order representation.

### Shared views and access

Clients read only part of a changing list. Missed events can corrupt their view. A disabled link must also stop existing live subscriptions.

## Common mistakes

- Replace the complete playlist for each edit and silently overwrite concurrent changes.
- Use media identity instead of a distinct identity for each playlist entry.
- Assign consecutive positions and rewrite the rest of the playlist after each insertion.
- Use large offsets or complete reads for access near the end of a playlist.
- Treat socket notifications as durable history or allow unlimited replay.
- Omit retry protection or leave live subscriptions active after their link loses access.

## The bar by level

- **Senior:** Defines conflict outcomes, missing-target behavior, and retry rules. Explains indexed order access and safe position maintenance. Provides bounded revision replay and atomic event records. Handles share revocation for requests and existing subscriptions.
- **Staff+:** Quantifies contention for one playlist and sets throughput limits. Bounds maintenance, replay, and revocation work during failures. Explains a path to higher edit rates. If the interviewer asks about offline edits, defines a migration path for operation history and conflict rules.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=playlist-management


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
