algomiBlogs
← All posts

Designing Netflix: Putting the Movie in a Box Near the Viewer

Algomi Research · Created 2026-09-26 · Updated 2026-10-15 · System Design

System Design Case Studies · Part 13 of 15
Designing YouTube: From One Upload to a Video Anyone Can PlayDesigning Hotstar: Live Cricket for Tens of Millions at Once
Page 1 of 1

Friday, 9 pm, Kochi

The Menon family in Kochi has waited a year for the new season of their favourite thriller. It drops at 9 pm on Friday on ChalChitra Stream. At 9:00:05, they press play, along with several million other households across the country. The first frame appears in under two seconds. Halfway through episode 2, the cache box at their internet provider fails, and they never notice. (The Menons, ChalChitra, Aditya and every number here are made up for teaching.)

Aditya designs ChalChitra's streaming. He explains it with a city that has one giant film warehouse on the far side of town. Every family drives there for a movie, and the roads jam every evening. Now imagine the warehouse puts a small shelf of films in each neighbourhood, and stocks it at night when the roads are empty. Families walk to the nearest shelf. A head office answers only two questions:

  • "Am I allowed to watch this?"
  • "Which shelf is nearest to me?"

That's the idea behind large video streaming. This guide designs an on-demand streaming service in the style of Netflix. It is an original interview design, not Netflix's private architecture. Where it describes how Netflix does something, the source is Netflix's own public Open Connect overview. Uploading user videos is covered in our YouTube guide, and live sport in our Hotstar guide.

What happens on Friday night Idea it forces
"Press play, first frame in 2 seconds" Two planes: decisions in the cloud, bytes in a box
"Which box should the Menons use?" Steering with a live cache inventory
"Millions press play at 9:00:05" Fill the boxes at night, before anyone asks
"A cartoon and a dark thriller need different bitrates" Per-title encoding
"The box at their ISP failed mid-episode" Ranked URLs and client failover

In 30 seconds, as an architect would frame it: "Split it into a control plane in the cloud and a data plane of cache appliances inside or near ISPs. The control plane checks entitlement and licence, and steers each play to a ranked list of appliances that hold the needed files, using file availability, health, proximity and load. Appliances only report status and serve files, and they hold no member data. Instead of filling on demand, a fill planner uses popularity to stock appliances during off-peak windows, so release night streams from boxes that already have the files. Encodings are chosen per title. Players fail over across ranked URLs without asking the cloud again."

1. The rules and the pieces

Members pick a profile, browse a catalogue, press play, and expect the video to start quickly and keep going, on phones, TVs and browsers. The service remembers where each profile stopped. Titles have licences that differ by country and by date.

Rule Why it matters
Play only what the member is entitled to Subscriptions, countries, and profile ratings all limit what may be played
Start quickly and rarely stall A slow start makes people leave
Video bytes come from a box near the viewer Distance and shared links are the main cost
A failed box must not end playback Hardware fails all the time at this scale
Personal data stays out of the video servers Viewing history and licences belong to the cloud side
A new title appears on its release time, not before The files can arrive early, the launch cannot

Recommendations, billing and studio delivery are separate systems. This guide covers the path from the play button to the screen.

Record Main fields Responsibility
Title title_id, kind, availability by country What can be watched and where
Asset title_id, encode set, file ids, checksums The playable files for one title
Profile profile_id, account_id, maturity limit Who is watching
Entitlement account_id, plan, region Whether playback is allowed
PlaybackSession session_id, profile_id, title_id, chosen sources One viewing, with its quality data
Position profile_id, title_id, seconds Where to resume
Appliance appliance_id, site, health, files present, capacity One cache box and what it holds

The Appliance record is the unusual one. The control side must know which box holds which file, or it can't choose well.

2. "First frame in two seconds": two planes, kept apart

  • The control plane makes decisions.
  • The data plane moves the heavy bytes.

Netflix's overview describes exactly this split. Its cache appliances, called Open Connect Appliances (OCAs), do only two things: report their status to the control services in the cloud, and serve files over HTTP or HTTPS. They store no viewing history, no DRM information and no member data.

flowchart TD
    P@{ icon: "algomi:ext-device", label: "Player app", pos: "b", h: 52 }
    A@{ icon: "algomi:svc-cube", label: "Playback service", pos: "b", h: 52 }
    P --> A
    E@{ icon: "algomi:svc-cube", label: "Entitlement and licence check", pos: "b", h: 52 }
    A --> E
    S@{ icon: "algomi:svc-flow", label: "Steering service", pos: "b", h: 52 }
    A --> S
    K@{ icon: "algomi:data-bolt", label: "Cache inventory", pos: "b", h: 52 }
    S --> K
    B@{ icon: "algomi:data-bolt", label: "Cache appliances near viewers", pos: "b", h: 52 }
    B -->|report health and files| K
    P -->|fetch video files| B

You've reached the free preview of this post.

Subscribe to the Blogs plan (₹99/mo) — or use any Algomi Suite, Career, Investor, or Trader plan — to keep reading.

See plans

Sources

System Design Case Studies · Part 13 of 15
Designing YouTube: From One Upload to a Video Anyone Can PlayDesigning Hotstar: Live Cricket for Tens of Millions at Once