It's the World Cup final. Ganesh, a college student in Bihar, watches on a ₹7,000 phone over patchy mobile data. In Pune, the Kulkarni family has gathered in front of a 65-inch smart TV. At 1:30 pm, when the toss happens, tens of millions of people open CricStream in the same few minutes. (Ganesh, the Kulkarnis, CricStream, Ritu and every number here are made up for teaching.)
Ritu leads CricStream's live platform. She describes final night with a school sports day. At nine o'clock sharp, a thousand parents arrive at the same gate. They don't trickle in over an afternoon. The gate is small, and you can't build a new one while they queue. So the school:
opens extra gates the night before,
puts signs at the entrance,
has a plan for a crush: if the crowd grows too big, the snack stall closes first, never the gate to the field.
Live sports streaming has exactly that shape. Everyone wants the same match at the same second, and they arrive in a synchronised wave. On-demand video can be prepared ahead and cached slowly. Live video can't: the picture is being produced now, and everyone wants the newest few seconds. A system that copes with 20 million people spread over a day may fail with 20 million arriving in twenty minutes.
This guide designs live video for a very large audience in the style of Hotstar, now part of JioHotstar. It is an original interview design, not the internal architecture. It leans on two public sources:
A 2019 talk by Hotstar's engineers, which reports a peak of 25.3 million concurrent viewers.
A 2025 summary of Hotstar's later engineering posts, which reports over 61 million concurrent users in 2023. The summary is secondary, so it's used for its stated facts and no more.
"The camera feed has to reach 40 million screens live"
The video path: encoder, packager, origin, CDN
"Ganesh's phone and the Kulkarnis' TV need different streams"
Rendition ladders, device classes, codecs, DRM
"Everyone checks the score every ten seconds"
Separating cacheable APIs from personal ones
"Ten million joined in five minutes at the toss"
Scaling before the wave, in steps
"The load is above plan in the last over"
Degrading in a planned order
"Things broke that no test had shown"
Bottlenecks that only appear at scale
In 30 seconds, as an architect would frame it: "Keep two paths apart. Video flows encoder → packager → origin → CDN, as segments and live playlists, with request coalescing so the origin sees each new segment once. Everything else goes through an API gateway, where shared data such as scores is cached at the edge for seconds, and personal requests (session, entitlement, licence) are protected. Every device gets a manifest for its class from one encrypted, package-once ladder. Capacity is provisioned ahead of the match schedule, in steps, not by reactive autoscaling. And a tested degradation ladder switches extras off, and retries are damped, so the P0 video path stays alive."
1. The rules and the pieces
Viewers open the app, sign in, choose a match and watch live at a quality that suits their connection. They also see scores, highlights and other extras around the video. A subscription or an ad-supported plan decides what they may watch.
Rule
Why it matters
The live video must keep playing
It is the product, and failure is public
Extras may switch off before video does
A missing recommendation is better than a stalled match
Scores may be a few seconds stale
Perfect freshness for millions is too expensive
Sign-in and entitlement must stay fast
Every viewer passes through them at the start
Capacity must be ready before the wave
Adding servers after the crowd arrives is too late
Retries must not multiply load
A failing screen must not hit the servers ten times harder
Every device gets a stream it can play
Phones, browsers, and televisions differ in screens, codecs, protection systems, and connections
Ads, payments and content production are separate systems. This guide covers what happens between the camera and millions of screens.
Record
Main fields
Responsibility
Match and Stream
match_id, stream_id, start time, quality set
The live event and its feeds
Variant
stream_id, resolution, bitrate, codec
One quality level of the same live feed
Segment
stream_id, variant, sequence number, duration
A few seconds of one variant
Live playlist
stream_id, recent segments
The rolling list players reload
Session
user_id, device, entitlement
Who is watching and whether they may
Device class
protocol, codecs, top resolution, protection system
Which manifest a device receives
API class
endpoint, cacheable or not, freshness
How each request is treated
Degradation level
level, features switched off
What we are willing to lose under load
The API class is the important design choice. Deciding it once for each endpoint is what lets you protect the servers later (section 3).
Two paths, kept apart
flowchart TD
C@{ icon: "algomi:svc-cube", label: "Camera feed", pos: "b", h: 52 }
E@{ icon: "algomi:ext-device", label: "Live encoder", pos: "b", h: 52 }
C --> E
K@{ icon: "algomi:async-gear", label: "Packager: segments and playlist", pos: "b", h: 52 }
E --> K
O@{ icon: "algomi:ext-server", label: "Origin", pos: "b", h: 52 }
K --> O
D@{ icon: "algomi:sec-globe", label: "CDN", pos: "b", h: 52 }
O --> D
V@{ icon: "algomi:svc-cube", label: "Viewers", pos: "b", h: 52 }
D --> V
G@{ icon: "algomi:svc-api", label: "API gateway", pos: "b", h: 52 }
V --> G
X@{ icon: "algomi:sec-globe", label: "CDN cache for shared data", pos: "b", h: 52 }
G --> X
S@{ icon: "algomi:svc-cube", label: "Session and entitlement services", pos: "b", h: 52 }
G --> S
F@{ icon: "algomi:async-gear", label: "Feature flags: degradation level", pos: "b", h: 52 }
G --> F
Reading the diagram. Read it as two separate pipes that meet only at the viewer.
The video path (top, camera to viewers) moves segments almost entirely through the CDN.
The API path (bottom, viewers to gateway) carries everything else: sign-in, entitlement, scores and screens.
Keeping them apart means a problem in the score API can never slow the video. Feature flags sit on the API side, because that's where the degradation level is read (section 5).
2. "40 million screens, live": the video path
Live video: the feed becomes segments, and a CDN carries them to viewers · hover or tap to pause
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.