Design Spotify

Hard45 min
1 / 30
understanding5 min read

Problem Statement & Context

How Problem Statement & Context shapes architecture and interviewer follow-ups for Design Spotify.

Design Spotify — Problem Statement

Spotify is an on-demand music streaming platform: listeners search or browse catalogs, press play, and hear licensed audio with minimal startup delay, continuous playback across devices, personalized discovery feeds, and optional offline listening for premium tiers.

Why interviewers ask this

The question tests read-heavy CDN architecture, rights-aware playback, recommendation pipelines, event-driven analytics at billions of plays/day, and client-side caching — not a generic CRUD app.

Scale anchors (public ballparks)

  • 600M+ monthly active users; 100M+ paid subscribers
  • 100M+ tracks catalog metadata; daily play events in the billions
  • Peak concurrent listeners in the low tens of millions globally

Core journeys

Listener: open app → home/reco feed → play track → skip/seek → add to playlist → continue on another device.

Rights ops: ingest masters → encode bitrates → geo-restrict catalog → report royalties.

Data/ML: consume play/skip events → refresh Discover Weekly → evaluate experiments.

Extended interview notes
  • Problem Statement note 1: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 2: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 3: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 4: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 5: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 6: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 7: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 8: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 9: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 10: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 11: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 12: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 13: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 14: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 15: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 16: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 17: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 18: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 19: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 20: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 21: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 22: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 23: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 24: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 25: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 26: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 27: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.
  • Problem Statement note 28: Separate catalog metadata control plane from byte delivery data plane; never mix licensing policy with CDN cache keys without signatures. Tie decisions to measurable SLOs (TTFB, skip-rate fidelity, rights-cache hit ratio) and call out failure isolation.

Why interviewers care

Spotify interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.

Interview checkpoint

Name one failure story for Problem Statement & Context that proves you understand real outages, not happy-path diagrams.

Key Highlights

  • Problem Statement & Context: anchor the Spotify narrative
  • Rights before CDN bytes — fail closed
  • Kafka play/skip feeds reco and royalties
Lead with TTFB
State time-to-first-byte and licensing gates in your first minute — it signals streaming maturity.
Bytes ≠ metadata
Catalog rows live in OLTP stores; audio bytes live in object storage + CDN — different scaling curves.

Section Rescue Kit

Buzzwords to use:

CDN edge cacheCollaborative filtering

Safe statements:

  • "Let me anchor on time-to-first-byte and licensing boundaries before picking storage."
  • "The trade-off here is catalog freshness versus playback latency on cold tracks."
Design Spotify - System Design | WinJob | WinJob