Video Streaming diagram template
Upload, transcode into adaptive bitrate renditions and serve video segments through a global CDN.
About this design
Video streaming splits cleanly into an upload path that is slow and compute heavy, and a playback path that must be cheap and global. Uploads land in object storage, which emits an event that triggers a transcoding pipeline: workers split the file, encode several resolutions and bitrates, and write the segments plus a manifest back to storage. Playback never touches the application servers for bytes; players fetch the manifest and then segments directly from a CDN, switching bitrate as the network changes. A metadata service and database hold titles, thumbnails and permissions, and a search index makes the catalogue findable. Use this template to talk about chunked uploads that can resume, hardware encoding cost, DRM, and why popular titles are pushed to edge caches ahead of release while the long tail is pulled on demand.
Diagram as text
This is the source of the diagram, in the ArchBoard diagram DSL. Paste it into Tools, Diagram from text to rebuild or change it.
title "Video streaming"
direction LR
client "Creator" -> service upload "Upload service" -> storage s3 "Raw video"
raw-video -> queue sqs "Transcode jobs" -> worker enc "Transcoder"
enc -> storage s3 "Encoded segments"
user "Viewer" -> cdn cloudfront "CDN" -> encoded-segments
user -> service meta "Metadata API" -> db mysql "Catalogue"
meta -> search elasticsearch "Search index"