
📝 System Design Interview Classics · C4 Architecture · Pro
How uploaded videos become streamable: resumable upload, transcoding into several qualities, storage, and delivery through a CDN with adaptive bitrate.
C4 Architecture diagrams are part of Pro. Anyone can view this one; generating and editing it needs Pro.
Drawing diagram…
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.
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")The classic interview design for a service like bit.ly: short code generation, fast redirects from a cache, and click analytics processed separately.
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.
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.
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.
How a token bucket rate limiter decides whether to let an API request through, using Redis so all servers share the same counts.
A notification system that sends email, SMS and push messages at scale: one API, a queue per channel, user preferences, and retries.