How to run a Netflix-style streaming design in a 45-minute interview: control vs data plane, encoding ladders, adaptive bitrate, ISP-embedded CDN with pre-positioning, and graceful degradation.
Published September 21, 2026
This lesson is the interview version of designing a video streaming service: how to pace the discussion and which deep dives to prepare. The full reference design is the case study Design Netflix in this chapter, and the more general Video Streaming Platform case covers user uploads (YouTube style).
What makes this problem distinctive is that the bytes dominate everything. Video is enormous, so the design is really about getting the right encoded file segments physically close to viewers before they press play. The "application" part (catalogue, accounts, recommendations) is conventional microservice work by comparison.
A quick bandwidth estimate shows why the CDN is the design: 10M concurrent streams Γ ~5 Mbps β 50 Tbps. No central data centre serves that. It has to come from thousands of edge locations.
βββββββββββββ Control plane (cloud region) βββββββββββββ
device βββΆ β API gateway β catalogue Β· search Β· profiles Β· playbackβ
β Β· recommendations Β· viewing history β
βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β playback service returns a manifest + CDN URLs
βΌ
device βββ video segments ββ CDN edge servers (inside ISPs / exchange points)
β²
β nightly pre-positioning of popular titles
studio master ββΆ ingest ββΆ encoding pipeline ββΆ origin object storage
Separate the two planes out loud:
A studio master file is transcoded into a bitrate ladder: many resolution and bitrate combinations (roughly 240p to 4K), several codecs (H.264 for compatibility, and HEVC, VP9 and AV1 for efficiency), plus audio tracks and subtitles. Each version is cut into small segments of a few seconds.
The player downloads a manifest (HLS or DASH), then fetches segments over plain HTTP. It continuously measures throughput and buffer level, and picks the rendition for the next segment: higher quality when the buffer is healthy, lower when it's draining. Since every segment boundary is a possible switch point, quality adapts without stalling. Plain HTTP segments also mean any HTTP cache or CDN can serve them.
Q: Why cut videos into small segments instead of streaming one file? A: Segments let the player switch quality at every boundary, make every request a cacheable HTTP GET, allow parallel and resumable downloads, and let playback start after only the first few seconds arrive.
Q: How does the player decide which quality to fetch? A: It combines measured throughput and current buffer level. When the buffer is full and throughput is high, it steps up. When the buffer drains, it steps down quickly to avoid a stall. Modern algorithms weigh the buffer heavily, because throughput estimates are noisy.
Q: What happens when an edge server fails mid-stream? A: The client already has a ranked list of alternative servers from the playback service. It requests the next segment from another server. Because it has seconds of buffer, the switch is usually invisible to the viewer.
Q: How is "continue watching" kept up to date? A: The player sends periodic progress heartbeats. They're written, often via a queue, to a store partitioned by profile ID. Reads just need the latest position per title, and seconds of staleness are acceptable.
Q: How would you support a live event with millions of viewers? A: Use a live encoder producing short segments continuously, and manifests that are updated as new segments appear. Push segments to CDN tiers immediately, and use request collapsing at the edges so a million simultaneous requests for the newest segment become one upstream fetch. The latency target and the synchronized load make it a different problem from on-demand video.