Video Upload & Transcode (YouTube-style)
Accept large uploads, process asynchronously, notify when ready.
IntermediateMedia
Large uploads go straight to object storage via a signed URL, an event triggers async transcoding into playback renditions, and the uploader is notified once processing completes -- keeping the upload path itself simple and fast.
When to use it
- Users need to upload large files without the API server buffering the whole payload
- Processing takes long enough that it must happen out-of-band from the upload request
Trade-offs
- Content is not immediately playable; there is a processing delay after upload
- Failed transcodes need a retry/notification path so uploads don't silently vanish
Components used
Web AppManaged App ServiceObject StorageEvent StreamBatch / Scheduled JobNotification Service
How it works
- Large files are uploaded directly to object storage using pre-signed URLs, so bytes never pass through the application servers.
- Upload completion emits an event that queues transcoding work, which runs asynchronously across a worker fleet.
- The user is notified when processing finishes; the video is unavailable but the request never blocked.
Used in the wild
- User-generated video platforms.
- Podcast and audio processing pipelines.
- Any large-file ingest where synchronous processing would time out.
Good to know
- Transcoding is enormously CPU-intensive and is the dominant cost of these platforms, which is why the ladder is tuned per video rather than applied uniformly.
- Resumable chunked upload matters more than it appears. A 4GB upload failing at 95% on a mobile connection is a user who does not try again.
Related system design
Video Streaming (Netflix-style)
Transcode once, serve adaptive bitrate streams from the edge.
Live Streaming Platform
Ingest a live feed, transcode in near real time, and fan out to viewers at the edge.
File Sync Service (Dropbox-style)
Chunk, deduplicate and sync files across devices with conflict resolution.
Collaborative Document Editor (Google Docs-style)
Multiple users edit the same document in real time via operational transforms.