CloudSketch AI Logo
FeaturesTemplatesPricingEnterpriseAboutContactLog in
🌙☀️
Log inStart free
Home/Templates/System Design Interview Classics

📝 System Design Interview Classics · C4 Architecture · Pro

Video Upload and Streaming (YouTube-style)

How uploaded videos become streamable: resumable upload, transcoding into several qualities, storage, and delivery through a CDN with adaptive bitrate.

More System Design Interview Classics templates

C4 Architecture diagrams are part of Pro. Anyone can view this one; generating and editing it needs Pro.

Drawing diagram…

What this diagram shows

  • Uploads go straight to object storage with resumable chunks
  • Each video is transcoded into several resolutions in parallel
  • Viewers get adaptive streaming from the nearest CDN edge

Prompt used

Video platform design: creators upload through an upload service that issues resumable, pre-signed upload URLs to object storage. A new upload triggers a transcoding pipeline that splits the video and produces 240p to 1080p HLS renditions with thumbnails. Metadata is stored in a metadata service with MySQL. Viewers load a watch page, and the player streams HLS segments from a CDN that pulls from object storage.

Mermaid code
C4Container
title Video Upload and Streaming
Person(creator, "Creator", "Uploads videos")
Person(viewer, "Viewer", "Watches videos")
System_Boundary(vp, "Video Platform") {
  Container(up, "Upload Service", "Go", "Pre-signed resumable uploads")
  Container(tc, "Transcoding Pipeline", "FFmpeg workers", "HLS renditions and thumbnails")
  Container(meta, "Metadata Service", "Java", "Titles, owners, status")
  Container(watch, "Watch Service", "Node.js", "Watch pages and manifests")
  ContainerDb(obj, "Object Storage", "S3", "Raw and encoded video")
  ContainerDb(db, "Metadata DB", "MySQL", "Video records")
}
System_Ext(cdn, "CDN", "Edge caching")
Rel(creator, up, "Uploads", "HTTPS")
Rel(up, obj, "Writes raw file")
Rel(obj, tc, "Triggers on new file")
Rel(tc, obj, "Writes renditions")
Rel(tc, meta, "Marks ready")
Rel(meta, db, "Reads/writes")
Rel(viewer, watch, "Opens video")
Rel(watch, meta, "Gets details")
Rel(viewer, cdn, "Streams HLS segments")
Rel(cdn, obj, "Pulls on miss")

Related templates

C4 ArchitectureProSystem Design Interview Classics

URL Shortener System Design

The classic interview design for a service like bit.ly: short code generation, fast redirects from a cache, and click analytics processed separately.

SequenceSystem Design Interview Classics

Chat App Message Delivery (WhatsApp-style)

How a one-to-one chat message is delivered in a WhatsApp-style system, with sent, delivered and read ticks, and push notifications when the receiver is offline.

Data FlowSystem Design Interview Classics

Social News Feed (Twitter-style)

How posts reach followers' feeds: fan-out on write for normal users, fan-out on read for celebrities, and a ranked feed built from a cache.

C4 ArchitectureProSystem Design Interview Classics

Ride Matching System (Uber-style)

The core of a ride-hailing app: drivers stream their locations, a geo index finds nearby drivers, and a matching service offers the trip to the best one.

FlowchartSystem Design Interview Classics

API Rate Limiter (Token Bucket)

How a token bucket rate limiter decides whether to let an API request through, using Redis so all servers share the same counts.

DeploymentProSystem Design Interview Classics

Notification Service Design

A notification system that sends email, SMS and push messages at scale: one API, a queue per channel, user preferences, and retries.