Sobes.tech
Middle — Senior

Designing a scalable video hosting architecture

livecode

Task condition

Develop a video hosting architecture capable of serving over 100 million users, providing upload and viewing functions, as well as ensuring scalability and fault tolerance.

Functional requirements:

  1. Ability to upload video materials to the system.
  2. Viewing video content by users.
  3. Video rating (likes/dislikes).
  4. Adding comments to videos.
  5. Recommendation system based on viewing history.
  6. Search videos by keywords and metadata.
  7. Storage and streaming of videos in different qualities (480p, 720p, 1080p, 4K).

Expected loads:

  • Over 100 million registered users.
  • About 50 million active users daily.
  • Each active user watches an average of 5 videos per day.
  • The volume of stored data is measured in petabytes.

Additionally: formulate a set of non-functional requirements (reliability, security, latency, availability, scalability, monitoring, etc.) that need to be considered when designing the system.