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.