System Design Lab
A video platform is really two systems: a compute-heavy transcode pipeline on ingest and a massively read-heavy CDN on playback.
Change uploads per day, average video length, concurrent viewers, catalog size, how many bitrate renditions you encode, the peak multiplier, and regions. The design moves from a single box that serves files directly, to CDN offload, to a queue plus a transcode worker farm, to sharded object storage with a separate metadata store, and finally to multi-region multi-CDN delivery.
Guided walkthrough
Reason about it one step at a time
Takeaway
Normal evolution scenarios
Click left to right for the intended demo path. Each card changes the workload inputs.
Recommended shape
Bottlenecks
Why this changes
Decision tradeoffs
Source-backed rules
These are the durable system-design claims behind the model. The exact slider thresholds are deliberately labeled as teaching assumptions.
Streaming video is delivered from CDN caches, not the origin
A CDN caches segments at edge locations near viewers; the origin only serves cache misses, which is the only way playback egress scales.
AWS CloudFrontAdaptive bitrate streaming packages multiple renditions for the player to switch between
HLS (and DASH) describe a media playlist of segmented renditions so the player picks a bitrate that fits current bandwidth; this is why ingest must encode several profiles.
Apple HTTP Live StreamingTranscoding is run as asynchronous jobs on a worker farm fed by a queue
File-based transcoding is submitted as jobs and processed by elastic workers, so upload spikes queue up instead of blocking the request path.
AWS Elemental MediaConvertObject storage is the durable, scalable origin for media files
Source videos and every rendition live in object storage, which scales storage and durability independently of the compute and serving tiers.
Amazon S3Teaching assumptions
- Playback bandwidth is modeled as concurrentViewers x peak multiplier x ~5 Mbps; CDN offload assumes hot content caches well at the edge.
- Transcode compute is approximated as profiles x source minutes x a fixed factor per worker; real encoders vary by codec and resolution.
- Storage counts source plus renditions per video; single-node QPS, egress, and storage budgets are conservative teaching numbers, not vendor limits.