Scenario
Design a Netflix-like platform that supports:
-
Search
for videos (by title, tags, people, etc.)
-
Stream
videos to web/mobile/TV clients
-
Upload
videos (assume both user-generated uploads and studio uploads)
Requirements
Functional
-
Users can browse/search a catalog and view metadata (title, description, thumbnails).
-
Users can stream a selected video with adaptive bitrate (ABR) and resume playback.
-
Content providers can upload a video, which becomes available for streaming after processing.
Non-functional
-
Low startup latency, smooth playback, global availability.
-
High reliability, fault tolerance, and observability.
-
Content protection support (at least tokenized URLs; optionally DRM).
Assumptions (you may refine)
-
50M DAU, peak 5M concurrent streams.
-
Global audience; multi-region deployment.
-
Typical video sizes: 1–10 GB source; multiple encoded renditions.
Deliverables
Explain:
-
APIs (client-facing and uploader-facing)
-
Data model and storage choices
-
High-level architecture (upload/processing pipeline, streaming delivery path, search)
-
Caching/CDN strategy
-
Reliability, consistency, and scaling trade-offs
-
Monitoring, rate limiting, abuse prevention