System design-interview: Ontwerp Netflix

"Ontwerp Netflix" is een leeszwaar probleem dat wordt gedomineerd door één feit: video wereldwijd serveren is veel meer een content-delivery- en opslagprobleem dan een rekenprobleem. De interviewer wil zien dat je de control plane (bladeren, zoeken, aanbevelingen) scheidt van de data plane (daadwerkelijk de bytes streamen) en redeneert over het leveren van petabytes dicht bij gebruikers.

Werk het op volgorde uit: verhelder de vereisten, schat de schaal, ontwerp de upload-/transcoderingspijplijn, dan het afspeelpad via een CDN, en sluit af met adaptieve bitrate en trade-offs. De onderstaande gids volgt deze structuur zodat je het redeneren oefent, niet een architectuur memoriseert.

1. Vereisten verhelderen

Scheid functioneel van niet-functioneel en bepaal de scope strak. De kern is: gebruikers bladeren door een catalogus en streamen video soepel op verschillende apparaten en netwerkomstandigheden.

  • Functioneel: catalogus doorbladeren/doorzoeken, afspelen starten, adaptieve kwaliteit, verdergaan waar je gebleven was, meerdere apparaten.
  • Niet-functioneel: zeer hoge beschikbaarheid, lage opstartlatentie, soepele weergave (geen buffering), wereldwijd bereik.
  • Buiten scope (zeg dit expliciet): de interne details van aanbeveling-ML, facturering, DRM-details — noem ze en stel ze uit.

2. Schaal inschatten

De cijfers rechtvaardigen een CDN-first ontwerp. Neem honderden miljoenen abonnees en vele miljoenen gelijktijdige streams op het hoogtepunt aan. Één stream verbruikt meerdere Mbps, dus de totale uitgaande bandbreedte bedraagt tientallen terabits per seconde — onmogelijk te bedienen vanuit een paar centrale datacenters, wat onmiddellijk edge caching motiveert.

3. Ingestie- en transcoderingspijplijn

Geüploade masters worden offline verwerkt, niet op het afspeelpad. Elke titel wordt getranscodeerd naar veel renditions — meerdere resoluties en bitrates — en gesegmenteerd in kleine stukken (elk een paar seconden) voor adaptieve streaming.

  • Transcoderingsfarm: converteert de master naar H.264/H.265/AV1-renditions bij meerdere bitrates; dit is embarrassingly parallel batchwerk.
  • Segmentatie en verpakking: splitst elke rendition in korte segmenten met een manifest (HLS/DASH) dat ze beschrijft.
  • Slaat outputs op in objectopslag (S3-achtig) als bron van waarheid, en pusht dan populaire content naar de edge.

4. CDN en het afspeelpad

Afspelen wordt bediend vanaf de edge, niet vanaf de origin. Videosegmenten worden gecached op CDN-nodes die fysiek dicht bij gebruikers staan (Netflix draait zijn eigen Open Connect-apparaten binnen ISP's). De client haalt het manifest op en trekt dan segmenten van de dichtstbijzijnde gezonde edge-node.

De control plane (catalogus, zoeken, gebruikersprofielen, 'verdergaan met kijken') is een afzonderlijke set stateless API-diensten met hun eigen databases en caches — het retourneert metadata en een manifest-URL, en is volledig losgekoppeld van de zware bytelevering.

  • Edge-cache (CDN/Open Connect): levert de overgrote meerderheid van de bytes; positioneert populaire titels per regio vooraf voordat er vraag is.
  • Origin-opslag: objectopslag die cache misses ondersteunt.
  • Control plane-API's: catalogus, afspeelautorisatie, bladwijzers — kleine payloads, horizontaal geschaald, met cache ervoor.

5. Adaptieve bitrate-streaming

Soepele weergave onder variabele netwerken komt van de client, niet van de server. De player monitort doorvoer en bufferniveau, en schakelt de segmentkwaliteit omhoog of omlaag tussen segmenten met behulp van de renditionlijst van het manifest — hogere bitrate op snelle verbindingen, lagere om buffering op trage te vermijden.

6. Trade-offs om te benoemen

Sluit af met de spanningen waar een interviewer naar luistert: de opslagkosten van het vooraf berekenen van alle renditions versus de latentie van on-the-fly transcoderen (Netflix berekent vooraf — opslag is goedkoper dan opstartvertraging); alles cachen versus alleen populair cachen op de edge (een long-tail catalogus kan niet volledig op elke edge leven); en sterke versus eventuele consistentie voor control plane-data zoals 'verdergaan met kijken' (eventueel is prima). Dit benoemen maakt het antwoord senior.

Oefen het systeemontwerp van Netflix met realtime hulp

De system design-interviewassistent van Natively kan je gestructureerd houden tijdens een live ronde — door de volgende dimensie te suggereren en trade-offs in realtime te laten zien, allemaal op je eigen apparaat.

Put it on your own machine.

A live-conversation assistant that runs locally. Nothing leaves your machine.

macOS 12+ · Windows 10/11

© 2026 Natively AI Private Limited

Source-available under the Natively Personal Use Source License v1.0 · IP geolocation by DB-IP