Chaturmind
LearnDSASystem DesignBlogPremium
Sign inGet started
Chaturmind

Structured learning paths for engineers who want to go deep. Written by practitioners.

Learn

  • Java
  • DSA
  • System Design
  • Spring Boot
  • AI / ML

Company

  • Blog
  • Premium
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 Chaturmind. All rights reserved.

Built for engineers who want to go deep.


← System Design Interview Playbook

Interview Framework

  • The 6-Step Design Framework

10 Case Studies

  • Design a URL Shortener
  • Design Twitter / X
  • Design WhatsApp
  • Design Netflix
  • Design a Rate Limiter
  • Design a Search Autocomplete
  • Design a Distributed Cache
  • Design a Notification Service
  • Design Uber / Ride Sharing
Chaturmind
← System Design Interview Playbook

Interview Framework

  • The 6-Step Design Framework

10 Case Studies

  • Design a URL Shortener
  • Design Twitter / X
  • Design WhatsApp
  • Design Netflix
  • Design a Rate Limiter
  • Design a Search Autocomplete
  • Design a Distributed Cache
  • Design a Notification Service
  • Design Uber / Ride Sharing
HomeLearnSystem DesignSystem Design Interview PlaybookDesign Cases
✓ FreeAdvanced· 13 min read

Design: Netflix

Design Netflix video streaming: CDN, adaptive bitrate, content encoding pipeline, and recommendation system.

Published April 24, 2025


Design: Netflix

Requirements

Functional: Stream videos, Browse catalog, Search, Recommendations, Multiple device/quality support Scale: 230M subscribers, 15% of global internet traffic, 8K streams per second peak

The Core Challenge: Video Delivery

Video files are huge (1 hour HD = 3-5 GB). You cannot serve them from a single origin server.

CDN Strategy

Origin Servers (AWS S3) → CDN Edge Servers (worldwide) → Users

Netflix's Open Connect:
  - Netflix deploys its own CDN appliances directly at ISPs
  - Popular content pre-positioned at the edge
  - User requests served from nearest edge (< 10ms latency)

Adaptive Bitrate Streaming (ABR)

The same video is stored at multiple quality levels. The client switches quality based on available bandwidth.

Video encoded at:
  4K    (15 Mbps)
  1080p (8 Mbps)
  720p  (4 Mbps)
  480p  (2 Mbps)
  360p  (1 Mbps)

Each quality level is split into 4-second segments.
Client player:
  1. Download manifest (list of all segment URLs per quality)
  2. Measure download speed of last segment
  3. Choose quality for next segment based on bandwidth
  4. Buffer 10-30 seconds ahead

Protocol: HLS (HTTP Live Streaming) or DASH (Dynamic Adaptive Streaming over HTTP)

Video Encoding Pipeline

Original Video Upload
  ↓
[Encoder Farm (AWS) — parallel encoding]
  ↓ (different resolutions, codecs: H.264, H.265, AV1)
[S3 Storage]
  ↓
[CDN Push — pre-position at edge based on popularity prediction]

Data Model

-- Metadata (MySQL + Elasticsearch for search)
videos: video_id, title, description, duration, genres[], cast[]

-- Viewing history (Cassandra)
view_history: user_id, video_id, watch_position, updated_at

-- Recommendations (offline ML pipeline → Cassandra)
recommendations: user_id, video_ids[], model_version, generated_at

Architecture

Client → DNS → Edge Location → CDN
  ↓ (metadata/auth)
API Gateway → [Catalog Service | User Service | Recommendation Service]
  ↓
[MySQL] [Cassandra] [Elasticsearch]
  ↓
[Kafka → ML Pipeline → Recommendations]

Recommendations

  • Collaborative filtering: users with similar viewing history like similar content
  • Content-based: match user preferences to video features
  • Offline processing: ML models retrain nightly; recommendations precomputed and cached per user

Interview Tips

  1. The key insight is that video streaming is almost entirely CDN/edge — the origin server is rarely hit.
  2. ABR + chunked streaming explains why Netflix rarely buffers — quality adapts rather than pausing.
  3. Precomputed recommendations stored in Cassandra → O(1) lookup per user.

Previous

Design WhatsApp

Next

Design a Rate Limiter

AI Tutor

Lesson: Design: Netflix

Quick actions

AI responses can be inaccurate. Verify critical information.