Design a Netflix-like MVP (System Design)
Context
You are designing an MVP video streaming platform that supports browsing content, playing videos on multiple device types via adaptive bitrate streaming, and resuming playback across sessions and devices.
Make reasonable assumptions where details are missing and call them out. Focus on practical, buildable designs that scale from a small launch to moderate growth.
Functional Requirements
-
Browse the catalog by genre and curated lists such as "Recently Added" and "Top Ten".
-
Play videos at different resolutions across device types using adaptive bitrate (ABR) streaming.
-
Resume playback so users can continue where they left off across sessions and devices.
Deliverables
-
Service decomposition (include: metadata, catalog, user/profile, playback/session, encoding/transcode pipeline, CDN).
-
Key data models.
-
API contracts for: browse/search, playback (start/heartbeat/stop), and resume state.
-
Explanations for: session state tracking, DRM/licensing, device compatibility, storage and CDN choices, scaling strategies, SLOs/SLAs, monitoring/observability.
-
How you handle: content ingestion, indexing, cold starts, and basic ranking placeholders.
Constraints and Scope Notes
-
Design for an MVP first; note clear extensions for scale.
-
Assume licensed content (no UGC moderation) and a simple subscription/entitlement model.
-
Target web and mobile apps initially; smart TVs may follow.