System Design Prompt
Design a robust and scalable video upload subsystem for a YouTube-like platform, specifically engineered to handle large video files efficiently.
Core User Flow
The core user flow involves a user selecting a large video file (ranging from hundreds of megabytes to tens of gigabytes). The upload process must be highly reliable, supporting resumability even after network interruptions. Following a successful upload, the platform should process the video (e.g., transcoding) to make it playable.
Requirements
Key requirements include supporting resumable uploads, especially over unstable mobile networks, and efficiently handling large files through mechanisms like chunking, retries, and integrity checks. The system must provide real-time upload status to clients, including progress and failure reasons. Durability of uploaded content is paramount, ensuring no data loss. Basic security measures, such as user authentication, upload authorization, and misuse prevention, are also required.
Scale Assumptions
The system should be designed to accommodate millions of users, handle spiky traffic patterns (e.g., during new content releases), and support global uploads.
Deliverables
Candidates should present the APIs, data model, and high-level architecture. This includes a comprehensive storage strategy for both raw uploads and processed outputs, the design of the video processing pipeline (e.g., transcoding, thumbnail generation), strategies for failure handling, idempotency, and observability, and a discussion of key architectural trade-offs.
AI interview prep
Core dilemma
Balancing the need for highly reliable, resumable, and efficient large file uploads over potentially unstable networks with the complexities of distributed processing, data durability, and global scalability, all while maintaining a responsive user experience and robust security.
3 tradeoffs and 3 stress tests locked
Interview prep
Unlock the interviewer X-Ray rubric, tradeoff matrix, stress tests, clarifying questions, and key concepts.
System Design Prompt
Design a robust and scalable video upload subsystem for a YouTube-like platform, specifically engineered to handle large video files efficiently.
Core User Flow
The core user flow involves a user selecting a large video file (ranging from hundreds of megabytes to tens of gigabytes). The upload process must be highly reliable, supporting resumability even after network interruptions. Following a successful upload, the platform should process the video (e.g., transcoding) to make it playable.
Requirements
Key requirements include supporting resumable uploads, especially over unstable mobile networks, and efficiently handling large files through mechanisms like chunking, retries, and integrity checks. The system must provide real-time upload status to clients, including progress and failure reasons. Durability of uploaded content is paramount, ensuring no data loss. Basic security measures, such as user authentication, upload authorization, and misuse prevention, are also required.
Scale Assumptions
The system should be designed to accommodate millions of users, handle spiky traffic patterns (e.g., during new content releases), and support global uploads.
Deliverables
Candidates should present the APIs, data model, and high-level architecture. This includes a comprehensive storage strategy for both raw uploads and processed outputs, the design of the video processing pipeline (e.g., transcoding, thumbnail generation), strategies for failure handling, idempotency, and observability, and a discussion of key architectural trade-offs.