News · New this week
Live streaming system design: an IPL final to crores
Players buffer three chunks, so 6s chunks mean a long delay. Here is how a typical setup cuts it to a few seconds without flattening the origin.
The interview question is simple to say. How would you stream an IPL final to crores of viewers? The real test is cutting delay without crashing the origin.
Why live runs 20-30 seconds late
Players buffer three chunks. If each chunk is 6 seconds, that's 3 x 6s, so you're already 18 seconds behind. Add 2-10 seconds for encode, packaging and CDN hops, and you land at 20-30 seconds.
The pipeline starts at encode and pack. In the reel's setup that means 2 feeds cut into 6 second chunks. Everything after that is about getting those chunks to phones.
Shield the origin, cache at the edge
Lakhs of viewers want the same chunk at the same moment. If every request hit the origin, it would be overwhelmed. An origin shield sits in front and merges duplicate requests, so the chunk is fetched once. Think of a kirana shop. One fetch, many customers served.
The shield protects the origin, but bandwidth is a separate problem. Roughly 5 crore viewers at 2 Mbps is 100 Tbps. That needs CDN edges inside ISPs, which cache the chunks closer to viewers.
What adaptive bitrate does and doesn't do
On the phone, adaptive bitrate (ABR) picks a quality between 240p and 1080p for each chunk. Because the choice is per chunk, the player can change quality as conditions change.
Does that end buffering? No. It lowers stall risk, and a fixed 1080p stream on weak 4G stalls far more. But stalls reduce, they never vanish.
How LL-HLS cuts delay
Low-latency HLS attacks the buffer itself. It sends half-second parts, so playback starts before a full chunk has finished.
The buffer is still three pieces, but now they're parts. 3 parts x 0.5s is a 1.5 second buffer, instead of 3 x 6s. With encode, packaging and network hops on top, the total lands near 2-5 seconds.
Put together, the design reads in order. Encode and pack into chunks, merge duplicate requests at the origin shield, cache at ISP edges, let the phone pick its quality with ABR, and use LL-HLS parts to shrink the buffer.
What to try
Next time you practise this question, do the arithmetic out loud. Show 3 x 6s for the delay, 5 crore at 2 Mbps for the bandwidth, and 3 x 0.5s for the fix. Then ask yourself how you'd cut delay to a few seconds without overloading the origin. Those numbers carry most of the answer.


