Netflix System Design
Requirements
How to Open a Netflix Design Interview
When asked βDesign Netflixβ, resist the urge to dive into architecture. Spend the first 3β5 minutes clarifying scope, stating scale, and agreeing on requirements. This signals senior engineering judgment.
Step-by-step opening script
"Are we designing the full streaming platform, or focused on a specific component β say playback, recommendations, or content ingestion?"
"Netflix has ~230M subscribers, ~60M peak concurrent streams, roughly 45 Tbps peak egress, and around 260K API requests/second at prime time. I'll design to those numbers."
"Core features: auth + profiles, browse/search catalog, video playback with DRM and ABR, resume across devices, recommendations, billing, and a content encoding pipeline for ingest."
"Non-functional: <2s playback start P99, <200ms TTFB from CDN, 99.99% playback availability, >99% CDN cache hit for top titles, β€8 concurrent streams per account enforced at license time."
"Watch history and recommendations are eventually consistent. Auth, billing, and concurrency limits need strong consistency. I'll call out each trade-off as I design."
Pro tip: Don't recite requirements from memory. Ask the interviewer which scope they care about before committing to a design area. Flagging consistency and availability trade-offs on every P0 requirement signals senior judgment.
Scale Anchors
Memorise these numbers β they anchor every capacity and architecture decision that follows.
230M+
Subscribers
~60M peak concurrent streams
45 Tbps
Peak Egress
Served via CDN / Open Connect Appliances
260K RPS
Peak API RPS
Across all services at prime time
β€8
Concurrent Streams / Account
Enforced at DRM license issue time
~2M writes/s
Watch-History Write Rate
60M streams Γ heartbeat every 30s
15,000+ titles
Content Library
Each encoded in 1,200+ variants for ABR
Functional Requirements
Grouped by domain. Click a domain to expand its requirements.
| Requirement | Priority | Consistency | Latency SLO | Availability |
|---|---|---|---|---|
| User can start video playback | P0 | Strong | <2s startup | 99.99% |
| Adaptive bitrate streaming (quality auto-adjusts) | P0 | N/A | Seamless | 99.99% |
| Pause, resume, seek within video | P0 | Eventual | <200ms | 99.99% |
| Resume across devices (continue watching) | P0 | Eventual | <500ms | 99.9% |
| Subtitle and audio track selection | P1 | Eventual | <300ms | 99.9% |
| DRM license validation before play | P0 | Strong | <500ms | 99.99% |
| Enforce concurrent stream device limit | P0 | Strong | <100ms | 99.99% |
Non-Functional Requirements
These are what interviewers test you on in follow-up questions.
| Category | Requirement | SLO | Priority |
|---|---|---|---|
| Playback Startup | Video starts playing in <2s from click (P99) | <2s P99 | P0 |
| TTFB (First Byte) | First video byte delivered from CDN edge within 200ms | <200ms P95 | P0 |
| Search Autocomplete | Results shown in <100ms | <100ms P95 | P0 |
| Homepage Load | Recommendations visible within <500ms | <500ms P95 | P0 |
| Playback Availability | Existing streams continue during partial outages | 99.99% | P0 |
| Overall Service Availability | Auth, catalog, playback APIs remain reachable | 99.99% | P0 |
| CDN Cache Hit | Video segments served from edge, not origin | >99% top titles | P0 |
| Throughput | Sustain peak egress bandwidth across all streams | 45+ Tbps peak | P0 |
| Request Rate | API gateway handles peak global RPS | 260K RPS peak | P0 |
| Concurrent Stream Limit | Enforce per-account device concurrency at play time | β€8 streams/account | P0 |
| Billing Consistency | Subscription changes reflected immediately | Strong consistency | P0 |
| Watch History Freshness | Resume position synced within 1 heartbeat interval | ~30s eventual | P1 |
| Rec. Freshness | Recommendations reflect recent watches within minutes | <5min nearline | P1 |
| Data Retention | Event data retained for ML training and compliance | 90 days raw, 2y curated | P1 |
| DRM Security | Content protected β no playback without valid device-bound license | Zero plaintext fallback | P0 |
| Fault Tolerance | Recommendation/search failure must not block playback | Degraded, not down | P0 |
What to Skip in a 45-Minute Interview
You can't cover everything. State what you're skipping and why β that shows senior judgment.