Bird
Raised Fist0
HLDsystem_design~12 mins

Video recommendation system in HLD - Architecture Diagram

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
System Overview - Video recommendation system

This system suggests videos to users based on their interests and past behavior. It must handle many users and videos, provide quick recommendations, and update suggestions as users watch more videos.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  v
+----------------+       +----------------+
| Recommendation  |<----->| User Behavior   |
| Service        |       | Service        |
+----------------+       +----------------+
        |                        |
        v                        v
+----------------+       +----------------+
| Video Metadata |       | Cache          |
| Database       |       +----------------+
+----------------+                |
        |                         v
        +----------------->+----------------+
                           | NoSQL Database |
                           | (User Profiles) |
                           +----------------+
Components
User
user
Person who requests video recommendations
Load Balancer
load_balancer
Distributes incoming user requests evenly to API Gateway instances
API Gateway
api_gateway
Receives user requests and routes them to appropriate services
Recommendation Service
service
Generates video recommendations based on user data and video metadata
User Behavior Service
service
Tracks and processes user watch history and interactions
Video Metadata Database
database
Stores information about videos such as titles, categories, and tags
Cache
cache
Stores frequently accessed recommendations to reduce latency
NoSQL Database
database
Stores user profiles and behavior data for fast access
Request Flow - 14 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayCache
CacheAPI Gateway
API GatewayRecommendation Service
Recommendation ServiceUser Behavior Service
User Behavior ServiceNoSQL Database
User Behavior ServiceRecommendation Service
Recommendation ServiceVideo Metadata Database
Video Metadata DatabaseRecommendation Service
Recommendation ServiceCache
Recommendation ServiceAPI Gateway
API GatewayLoad Balancer
Load BalancerUser
Failure Scenario
Component Fails:Cache
Impact:Recommendations requests take longer because cache misses cause direct database queries
Mitigation:System falls back to querying databases and services directly; cache is rebuilt asynchronously
Architecture Quiz - 3 Questions
Test your understanding
Which component first receives the user's recommendation request?
ALoad Balancer
BAPI Gateway
CRecommendation Service
DCache
Design Principle
This design uses caching to reduce latency and load on databases. It separates concerns by having dedicated services for user behavior and recommendations. Load balancing and API Gateway ensure scalability and proper routing. The system gracefully handles cache misses by falling back to database queries.

Practice

(1/5)
1. What is the primary goal of a video recommendation system?
easy
A. To store all videos in a single database
B. To delete unpopular videos automatically
C. To compress videos for faster streaming
D. To personalize video content to increase user engagement

Solution

  1. Step 1: Understand the purpose of recommendation systems

    Recommendation systems aim to suggest content that matches user preferences to keep them engaged.
  2. Step 2: Identify the main goal in video platforms

    Personalizing video content helps users find videos they like, increasing engagement and satisfaction.
  3. Final Answer:

    To personalize video content to increase user engagement -> Option D
  4. Quick Check:

    Personalization = Engagement [OK]
Hint: Focus on user benefit and engagement goals [OK]
Common Mistakes:
  • Confusing storage with recommendation
  • Thinking compression is the main goal
  • Assuming deletion is automatic
2. Which component is essential for real-time video recommendations?
easy
A. Real-time data streaming and processing
B. Offline video transcoding
C. Batch processing system only
D. Static video metadata storage

Solution

  1. Step 1: Identify real-time needs in recommendations

    Real-time recommendations require processing fresh user interactions quickly.
  2. Step 2: Match components to real-time processing

    Data streaming and processing systems handle live data to update recommendations instantly.
  3. Final Answer:

    Real-time data streaming and processing -> Option A
  4. Quick Check:

    Real-time = Streaming & Processing [OK]
Hint: Real-time means instant data handling, not batch [OK]
Common Mistakes:
  • Choosing batch processing for real-time needs
  • Confusing transcoding with recommendation
  • Ignoring dynamic data updates
3. Consider a system where user watch history is updated every hour, but recommendations are generated in real-time. What is the likely output when a user watches a new video?
medium
A. The new video immediately influences recommendations
B. Recommendations update only after the next hourly batch
C. Recommendations never change after initial setup
D. The system crashes due to conflicting updates

Solution

  1. Step 1: Understand real-time recommendation generation

    Real-time generation means recommendations can change instantly based on new data.
  2. Step 2: Analyze watch history update frequency

    Even if watch history updates hourly, real-time components can use streaming data to update recommendations immediately.
  3. Final Answer:

    The new video immediately influences recommendations -> Option A
  4. Quick Check:

    Real-time generation = Immediate update [OK]
Hint: Real-time generation overrides batch delay [OK]
Common Mistakes:
  • Assuming batch update controls recommendation timing
  • Thinking system crashes on data conflict
  • Believing recommendations are static
4. A video recommendation system is showing outdated videos despite recent user activity. What is the most likely cause?
medium
A. User profiles are deleted frequently
B. Real-time data pipeline is broken or delayed
C. Video metadata is missing thumbnails
D. Batch processing runs too frequently

Solution

  1. Step 1: Identify the symptom - outdated recommendations

    Outdated videos suggest the system is not processing recent user actions timely.
  2. Step 2: Check real-time data pipeline status

    If the real-time pipeline is broken or delayed, fresh user data won't update recommendations promptly.
  3. Final Answer:

    Real-time data pipeline is broken or delayed -> Option B
  4. Quick Check:

    Outdated = Pipeline delay [OK]
Hint: Outdated results often mean broken real-time updates [OK]
Common Mistakes:
  • Blaming user profile deletion
  • Confusing metadata issues with recommendation freshness
  • Assuming batch runs cause outdated data
5. To scale a video recommendation system for millions of users, which design choice best balances freshness and computational cost?
hard
A. Generate recommendations on-demand without caching
B. Only use batch processing with daily updates
C. Use a hybrid approach combining batch model training with real-time feature updates
D. Store all user data in a single monolithic database

Solution

  1. Step 1: Understand scalability challenges

    Millions of users require efficient computation and timely recommendations without overload.
  2. Step 2: Evaluate design options for freshness and cost

    Hybrid systems use batch training for accuracy and real-time updates for freshness, balancing cost and performance.
  3. Final Answer:

    Use a hybrid approach combining batch model training with real-time feature updates -> Option C
  4. Quick Check:

    Hybrid approach = Freshness + Cost balance [OK]
Hint: Hybrid systems combine batch and real-time strengths [OK]
Common Mistakes:
  • Relying only on batch causes stale data
  • On-demand without caching is costly
  • Monolithic DB limits scalability