Design Video Upload System

Medium40 min
1 / 30
understanding6 min read

Video Upload Context and Platform Goals

How Video Upload Context and Platform Goals (understanding) informs Video Upload System architecture and interviewer depth.

Video Upload Context and Platform Goals

Frame the upload plane as a reliability-first ingress contract: creators on mobile LTE must finish multi-gigabyte mezzanine transfers without re-uploading from byte zero.

Problem framing
  • YouTube optimizes for watch-time; the upload path optimizes for completion rate and time-to-transcode-ready.
  • Vimeo skews toward pro creators with longer mezzanine masters and stricter format validation.
  • TikTok biases smaller vertical clips but still needs MPU for flaky networks and background upload.
Design choices
  1. Treat upload as three planes: session control, byte storage, and post-upload validation/transcode handoff.
  2. Anchor SLOs on upload completion %, p95 time-to-accepted, and dollars per ingested GB—not API QPS alone.
  3. Keep mezzanine immutable; all downstream ladders reference content hash + asset version.
Deep dive

Walk the interviewer through why proxying bytes through stateless API pods collapses under 100+ Mbps per connection. Mention legal hold on raw staging blobs and regional ingress caps.

javaOne Dark Pro
1public enum UploadPlane { SESSION, BYTES, VALIDATION }
2public record UploadSlo(double completionRate, Duration p95Accepted) {}
pythonOne Dark Pro
1from enum import Enum
2class UploadPlane(Enum):
3 SESSION = "session"
4 BYTES = "bytes"
5 VALIDATION = "validation"
typescriptOne Dark Pro
1type UploadPlane = "session" | "bytes" | "validation";
2interface UploadSlo { completionRate: number; p95AcceptedMs: number; }
Interviewer positioning

Section 1 ties decisions to upload completion rate, cost per ingested GB, and safe handoff to transcoding—not generic storage platitudes.

Operational notes
  • Dashboard upload funnel: initiated → first part → 50% bytes → complete → scan pass → transcode queued.
  • Alert when completion rate drops 0.5% week-over-week in a region.
Scale reference
  • 2M creator DAU; 800K finished uploads/day; ~420MB average mezzanine; 99.95% completion target.
  • Peak ingress planning: 180 Gbps regional; multipart 8MB parts, 10 parallel.

Why interviewers care

Video Upload System interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.

Interview checkpoint

Name one failure story for Video Upload Context and Platform Goals that proves you understand real outages, not happy-path diagrams.

Key Highlights

  • Separate upload session, mezzanine blob, and transcode handoff boundaries
  • Direct-to-storage multipart beats proxy upload past ~100Mbps ingress
  • Idempotent completeUpload with ETag manifest prevents double-publish
Interview Tip
State upload completion rate and ingress Gbps before drawing boxes.
What Impresses
Multipart ETag manifest, idempotent complete, and orphan MPU sweeper.
Avoid This
Do not proxy multi-GB bodies through stateless API pods.

Section Rescue Kit

Buzzwords to use:

Multipart uploadResumable upload

Safe statements:

  • "Let me separate upload session state from mezzanine bytes and transcode enqueue."
  • "I will size ingress from finished uploads per day and average mezzanine size."
Design Video Upload System - System Design | WinJob | WinJob