...

>

Requirements of YouTube's Design

Requirements of YouTube's Design

Define the core functional and non-functional requirements for a large-scale video streaming service like YouTube. Learn to perform crucial back-of-the-envelope resource estimation for storage, bandwidth, and server requirements.

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:

  1. Stream videos

  2. Upload videos

  3. Search videos

  4. Like and dislike videos

  5. Add comments

  6. View thumbnails

  7. Ask about videos in natural language and receive answers linked to relevant videos and timestamps

Non-functional requirements

  • High availability: The system should be highly available. High availability requires a high uptime percentage. Large services such as YouTube typically target 99.9% uptime or higher. At 99%, a service can still be down for more than three and a half days a year.

  • Scalability: The system must handle increasing users, storage, and bandwidth without performance degradation.

  • Performance: Streaming must be smooth with minimal latency.

  • Reliability: Uploaded content must not be lost or damaged.

  • Grounded answers: Answers from the AI assistant must be supported by the content of eligible videos and must never draw on removed, private, or region-restricted videos.

Representation of the functional and non-functional requirements
Representation of the functional and non-functional requirements

The conversational assistant has its own latency target, separate from standard search, because it retrieves evidence and generates an answer before responding. We cover its design in detail in the Ask ...