Recommendation System Design (Features, Ranking & Scale)

Design a recommendation system like Netflix's recommendation engine that suggests personalized content to users based on their preferences, behavior, and similar users. The system should handle millions of users and items.

Constraints

Functional

Generate personalized recommendations, multiple types (items/users/content), real-time updates from user actions, optional explainability, A/B testing, cold start (new users/items), diversity

Non-functional

< 100ms generation, high relevance, millions of users and items, real-time updates, 99.9% uptime

Scale

100M users, 20M DAU, 10M items; 100M recommendation requests/day, peak ~2K/s; 1B interactions/day, peak ~20K/s; ~1 TB profiles, ~10 GB item features, ~100 GB/day interactions (~36 TB/year)

Stages ahead

1Requirement Analysis
2API Design
3High-Level Design
4HLD Extensions
5Trade-offs
Recommendation System Design (Features, Ranking & Scale)