AlgoMaster Logo

Design Music Streaming Service like Spotify

Medium Priorityhard27 min readUpdated June 27, 2026
Practice this Problem

In this chapter, we will explore the low-level design of a Spotify like service in detail.

Lets start by clarifying the requirements:

1. Clarifying Requirements

Before starting the design, it's important to ask thoughtful questions to uncover hidden assumptions and better define the scope of the system.

Here is an example of how a conversation between the candidate and the interviewer might unfold:

After gathering the details, we can summarize the key system requirements.

Functional Requirements
  • Support both free and premium tiers for users
  • Support adding songs, albums, playlists, and artists
  • Allow users to play songs, albums, and playlists uniformly
  • Support playback controls: play, pause, and skip (next track)
  • Allow users to create playlists and add songs to them
  • Allow users to follow artists and receive notifications when a followed artist releases a new album
  • Allow users to search for songs by title or search for artists by name
  • Generate song recommendations using pluggable strategies (e.g., genre-based, randomized)
Non-Functional Requirements
  • Modularity: The system should be composed of well-defined modules
  • Extensibility: The design should be flexible to allow future additions
  • Maintainability: Code should be modular, easy to test, and cleanly organized

After the requirements are clear, the next step is to identify the core entities that will form the foundation of our design.

2. Identifying Core Entities

Premium Content

This content is for premium members only.