Live Streaming: What Breaks at Scale
A live stream that works for a hundred viewers can fail badly at a hundred thousand. The failure modes are predictable, and mostly preventable.
Live video is unforgiving in a way on-demand is not. There is no retry, the audience arrives all at once, and every problem is witnessed live.
The load shape
On-demand traffic is smooth. Live traffic is a step function: almost nothing, then everyone, at a time announced in advance. Capacity planned against averages fails at the join.
The join is the worst moment — every viewer requests the manifest and first segments simultaneously, the heaviest thing they will do all session.
Predictable failure modes
- Origin overload at kickoff. If the CDN has not cached the first segments, every request reaches your origin at once.
- Latency drift. Viewers fall behind live, which matters enormously when social media is reacting ahead of them.
- Bitrate ladder gaps. Too few rungs and viewers on poor connections oscillate instead of settling.
- Ad break desync. Server-side insertion that drifts returns viewers mid-action.
- The tail after the event. Demand for clips spikes exactly when the live team is exhausted.
What helps
- Pre-warm the CDN before the announced start.
- Test at the join, not in steady state. Steady state is the easy part.
- Degrade deliberately. Decide in advance what to shed under load — usually quality rungs before availability.
- Plan the clip pipeline before the event, because that demand is guaranteed and time-limited.
The clip problem
That last point is where most operations fall down. The moments people want are worth most within minutes, which is shorter than a manual editing pass. Working it out during the event is too late; it has to exist beforehand.