Netflix/YouTube System Design
FR
NFR
• Upload videos
• No Buffering
• ↓ Latency + ↑ Availability • User’s homepage + search
• ↑ User’s session time • Play videos
• ↓ Latency + ↑ Availability • Support all devices
• ↑ Recommendation engine
Support all devices –
Device Formats (i) – Dimensions (j) – Bandwidths (k)
• Clients (devices)
• Users (viewers)
• Production Houses (uploader)
Adaptive Bitrate Streaming – Client asks for quality of chunks
based on available bandwidth
Cassandra
Cluster
UI for Asset
L
Productio Onboarding
B
n House Service
Amazon S3
Content Processor (Workflow Engine)
Asset Search
File Chunker Service Consumer
Content Filter – Piracy, Nudity, Legal
K
Content Tagger – Classifiers, Thumbnails A
F
K
Transcoders – Formats A
Quality Converter
Spark
CDN Uploader Streaming
Notification
Service
CDN
Cassandra
Cluster
Asset MySQL KAFKA
Service Cluster
Redis
Host Search
Stream
Identity Service
stats logger
Service
User
Service
Main CDN
Home Page
LB
Analytics Service
Service
LB
CDN optimized for
local views
User
device
playing User LB
video device
Login
Flow
User
• Home screen
• Search service
- Recommendation Engine
- Traffic Predictor
Spark
Hadoop
Streaming
Cluster
Cluster Apache Spark Cluster
K
A
Asset
F
Service
K
A
Search
ElasticSear User
Customer
ch Cluster Service
Service
Cassandra
Cluster
Local Search Homepage
CDN 2 Service Service
Local CDN
CDN 1 Writer
LB
Local
CDN 3
User Homepage / Search