Press Play

Design a global video streaming service where a member can browse the catalog, press play, watch at the best quality their connection supports on any device, and pick up exactly where they left off.

Requirements

Functional:

  • Browse and search the catalog, open a title page, start playback.
  • Adaptive bitrate playback on TV, mobile, and web, with multiple audio tracks and subtitles.
  • Resume position syncs across devices within a few seconds, including after a phone has been offline.
  • Publishing: a studio mezzanine file becomes a full encode ladder available worldwide.

Non-functional:

  • p95 time to first frame under 2 seconds, p95 control-plane response under 200 ms.
  • Rebuffer ratio under 0.3% of total playback time.
  • 99.99% availability for playback start. Catalog browse may degrade to a stale cached page.

Scale

  • 120M daily active users, 2.5 hours average daily watch time, 25M peak concurrent streams.
  • Average delivered bitrate 4 Mbps, so roughly 100 Tbps peak egress.
  • Catalog of 80,000 titles, about 120,000 hours of runtime, growing 10,000 hours per year.
  • Media segments are 4 seconds and 1 to 3 MB each. Manifests are 20 to 60 KB.
  • Players post a progress heartbeat every 60 seconds.
  • Catalog browse peaks near 150,000 requests per second. Playback starts peak near 10,000 per second.

Out of scope

Recommendations and personalized ranking (assume ranked row order arrives from an existing service), billing and subscriptions, content acquisition, and live events.