Problem statement
Design the service that generates and serves the streaming manifests players read to do adaptive-bitrate playback. A manifest describes the rendition ladder for an asset and the ordered list of media segments; the player fetches it first and re-fetches it to adapt. Your service must produce the right manifest for each request, fast, for both video-on-demand and live.
Operating context. The catalog holds tens of millions of VOD assets, each transcoded into several renditions, plus thousands of concurrent live channels. The advertised rendition ladder must be tailored per request by device capability, region, and the viewer's entitlement tier, and segment URLs must be rewritten to the correct CDN edge with a signed token. VOD manifests are highly cacheable; live manifests change every few seconds as new segments publish.
Out of scope. The transcoding that produces renditions, DRM key delivery, the player's rendition-selection algorithm, the CDN's own cache configuration, and the entitlement service's internal logic (assume it exposes a fast check). Assume separate teams own those.
What to produce. A high-level architecture covering: the manifest data model, the generation paths for VOD versus live, how the ladder is filtered per request by device/region/entitlement, the caching strategy and invalidation, how live manifests stay fresh as segments publish, and how segment URLs are signed and rewritten to the edge. Sketch the components and the request flow; we will probe specifics during checkpoints.
Functional requirements
- Serve a master manifest listing the available rendition ladder for a requested asset.
- Serve per-rendition media playlists: full segment lists for VOD and sliding-window playlists for live.
- Filter the advertised ladder per request by device capability, region, and entitlement tier.
- Update live manifests as new segments are published, within one segment duration.
- Rewrite segment URLs to the correct CDN edge and attach a signed access token.
Non-functional requirements
- Serve 200,000 manifest requests/sec at peak across VOD and live.
- Manifest generation p99 under 40 ms on a cache miss and under 5 ms on a hit.
- Cache hit ratio above 95% for VOD master manifests.
- Live freshness: a newly published segment appears in the manifest within 2 seconds.
- 99.99% availability for the manifest read path.
- Catalog of 50,000,000 VOD assets, each with 4 to 8 renditions.
Topics
- System Design HLD
- Media Manifest
- Media Streaming
- Data Cache
- Scaling Read-Heavy