Requirements of YouTube's Design
In this lesson3 sections
Requirements of YouTube's Design
Scope the video service before estimating capacity. Distinguish source uploads, encoded renditions, playback transfers, and lightweight application requests; they have different resource costs.
Requirements
Designing a system like YouTube requires handling massive scale and reliability.
Functional requirements
We require that our system be able to perform the following functions:
Stream videos
Upload videos
Search videos by title
Like and dislike videos
Add comments
View thumbnails
Non-functional requirements
High availability: Set separate targets for upload acceptance and playback. For perspective, 99% time-based availability permits 7.2 hours of downtime in a 30-day month; whether that is acceptable depends on the product.
Scalability: Expand storage, processing, and delivery capacity as their measured workloads grow, while staying within agreed performance targets.
Performance: Measure startup delay, rebuffering, and delivered quality. Low API latency alone does not imply smooth playback.
Reliability: Uploaded content must not be lost or damaged.
The rest of this lesson is for Premium members
Premium opens every lesson in this course, along with all questions and solutions on PracHub.