Skip to content

Case Study 3 — Design Netflix

Problem: Design a video streaming service like Netflix supporting 250M+ subscribers, streaming movies/TV shows globally with adaptive bitrate, personalization, and high availability.


TypeRequirement
FunctionalBrowse catalog, search, play video (adaptive quality), resume from last position, personalized recommendations
Non-Functional< 2s startup time, 99.99% availability, 250M+ users, global distribution, 100+ Tbps peak bandwidth

flowchart TB
subgraph Client["Client Devices"]
Web["Web Browser"]
SmartTV["Smart TV"]
Mobile["Mobile App"]
end
CDN["Open Connect CDN<br/>Custom appliances in ISP"]
subgraph AWS["AWS Cloud"]
CF["CloudFront CDN"]
API["API Gateway"]
Services["Microservices<br/>User, Catalog, Playback,<br/>Recommendation"]
DB["AWS + Cassandra<br/>S3 for master files"]
Pipeline["Transcoding Pipeline"]
end
Client --> CDN
Client --> CF
CF --> API --> Services --> DB
DB --> Pipeline --> CDN
style Client fill:#f59e0b,color:#fff
style CDN fill:#7c3aed,color:#fff
style AWS fill:#3b82f6,color:#fff
style Pipeline fill:#059669,color:#fff

sequenceDiagram
participant Studio as Content Studio
participant S3 as S3 (Master Files)
participant Pipeline as Transcoding Pipeline
participant CDN as Open Connect CDN
Studio->>S3: Upload master file (large, 4K)
Note over S3: Master file stored in S3
S3->>Pipeline: Trigger transcoding
par Transcode to formats
Pipeline->>Pipeline: 4K → 2160p (HDR/SDR)
Pipeline->>Pipeline: 1080p (various bitrates)
Pipeline->>Pipeline: 720p, 480p, 360p (lower)
Pipeline->>Pipeline: Audio tracks (5.1, stereo)
Pipeline->>Pipeline: Subtitles (VTT)
end
Pipeline->>Pipeline: Package into segments<br/>(3-5 second chunks)
Pipeline->>CDN: Push to Open Connect appliances
Note over CDN: Distributed to ISPs worldwide

1. Open Connect CDN

Netflix’s custom CDN — dedicated caching appliances deployed inside ISP data centers. This handles > 95% of traffic, reducing AWS bandwidth costs dramatically.

2. Adaptive Bitrate Streaming

QualityResolutionBitrateWhen Used
4K UHD3840×216015-25 MbpsFast connection, big screen
1080p1920×10805-8 MbpsStandard HD
720p1280×7202-4 MbpsMedium connection
480p854×4801-2 MbpsMobile, slow connection
360p640×360400-800 kbpsPoor connection

Client requests video in chunks (~3-5 seconds). Each chunk can be at a different quality level — the player switches automatically based on network conditions.

3. Recommendation Engine

ComponentTechnology
Collaborative filteringMatrix factorization (user-item)
Content-based filteringTag/feature similarity
Deep learningNeural networks for feature extraction
A/B testingOnline experimentation platform

AspectApproachTrade-off
CDNCustom Open Connect appliancesCapital expenditure, ISP partnerships
Microservices700+ microservicesCoordination, deployment complexity
Data storageCassandra for viewing history, S3 for mastersMulti-region data sync
Chaos engineeringSimian Army (Chaos Monkey)Accepts that failures will happen

  • CDN is everything — Netflix built its own (Open Connect) to serve 95%+ of traffic
  • Adaptive bitrate = video split into 3-second chunks at multiple qualities, client chooses per chunk
  • Transcoding pipeline converts one master file into hundreds of format/quality/audio combinations
  • Recommendation drives 80%+ of content discovery — it’s the core of the product
  • Microservices architecture with 700+ services managed via chaos engineering
  • Global users get content from local ISP caches — not from a central server