System Design AI
Design brief
Product & backendAdvanced50 min suggested

Design a Video Streaming Platform

Turn uploads into playable renditions and serve viewers through unreliable networks.

Backend and product engineers designing software behavior.

Your approach: Use diagrams, tables or prose for customer contracts, state transitions and data ownership; include APIs only to the depth the question requests.

The problem

Design an on-demand video platform from resumable upload through transcoding and playback. Explain when a video becomes playable, how viewers select bitrate and how popular content is delivered. Handle failed processing, deletion and a sudden audience spike without assuming live streaming is in scope.

  • Upload 100,000 videos/day averaging 500 MB and ten minutes of playback each.
  • Serve 1 million concurrent viewers at peak, with average delivered bitrate of 3 Mb/s.
  • Offer three playback renditions. Processing can fail and a new video can become popular immediately.

Work within these constraints

Playback startup target

Declare p95 startup time for a cached video on an adequate network; state excluded network conditions.

Required target: ≤ 3 seconds

Playable publication

Expose only complete manifests and ready segments; represent processing failures honestly.

Deletion and cache policy

Define removal from discovery, authorization and cached delivery with explicit propagation limits.

What to deliver

1

Upload and processing states

Show durable upload, job identity, renditions, retries and publication.

2

Playback path

Describe manifests, segmented delivery, bitrate selection and access checks.

3

Capacity estimate

Calculate ingress storage, approximate processing demand and peak egress bandwidth.

4

Spike and outage walkthrough

Trace a failed rendition and a cold popular video; compare origin protection strategies.