Skip to content

Netflix — Notes#

Functional#

  • Catalog browse + search + per-row personalization.
  • Trailers, art selection, dubs/subs.
  • Playback with adaptive bitrate + DRM.
  • Account, profiles, parental controls.
  • Downloads for offline.

Non-functional#

  • 250M+ subscribers; ~15% of internet downstream at peak.
  • p99 playback start < 1.5 s.
  • 99.99% control plane availability.

Capacity#

  • 1 EB+ of video served / month.
  • Catalog: tens of thousands of titles × many encodes.
  • Per-title encode: 100s of CPU-hours.

Schema highlights#

  • titles(id, type, metadata, ladders[])
  • viewing(profile_id, title_id, ts, position, device)
  • embeddings(title_id, profile_id, vec)

Trade-offs#

  • Open Connect dramatically lowers cost; needs hardware deployment ops.
  • Pre-encode everything: storage explodes (50–100× original) but huge runtime savings.
  • All-in on AWS for control plane vs own metal for CDN: hybrid sweet spot.
  • Heavy microservice mesh demands chaos engineering culture.

Refs#

  • Netflix Tech Blog (years of posts on Hystrix, EVCache, Eureka, Spinnaker, Open Connect, per-title).
  • "Optimizing video QoE at Netflix" papers.
  • ByteByteGo "Design Netflix", Alex Xu Vol 2.