Problem Statement
Design a simplified system akin to Twitter, focusing on core functionalities.
Core Functionalities
The system must support:
- User accounts and profiles
- The ability for users to follow and unfollow other users
- Creation of short text posts
- Viewing a user's own profile timeline, displaying their posts
- Viewing a home timeline, which aggregates posts from all accounts a user follows
Optional Discussion Points
Candidates may optionally discuss the implementation of:
- Likes
- Reposts
- Notifications
Key Discussion Areas
The design discussion should cover:
- Functional and non-functional requirements (e.g., latency, availability, scalability)
- API design for core operations
- Data model and appropriate storage choices
- Strategies for feed generation, specifically comparing fan-out on write, fan-out on read, or a hybrid approach
- Caching mechanisms to improve performance
- Strategies for handling celebrity accounts and "hot keys" (e.g., highly followed users, viral posts)
- Considerations for reliability, consistency, and scaling the system to millions of users
AI interview prep
Core dilemma
Balancing the real-time delivery of highly personalized, aggregated content (home timelines) at massive scale, while efficiently handling diverse read/write patterns, especially for high-fanout scenarios and hot keys, under strict latency and availability constraints.
3 tradeoffs and 3 stress tests locked
Interview prep
Unlock the interviewer X-Ray rubric, tradeoff matrix, stress tests, clarifying questions, and key concepts.
Problem Statement
Design a simplified system akin to Twitter, focusing on core functionalities.
Core Functionalities
The system must support:
- User accounts and profiles
- The ability for users to follow and unfollow other users
- Creation of short text posts
- Viewing a user's own profile timeline, displaying their posts
- Viewing a home timeline, which aggregates posts from all accounts a user follows
Optional Discussion Points
Candidates may optionally discuss the implementation of:
- Likes
- Reposts
- Notifications
Key Discussion Areas
The design discussion should cover:
- Functional and non-functional requirements (e.g., latency, availability, scalability)
- API design for core operations
- Data model and appropriate storage choices
- Strategies for feed generation, specifically comparing fan-out on write, fan-out on read, or a hybrid approach
- Caching mechanisms to improve performance
- Strategies for handling celebrity accounts and "hot keys" (e.g., highly followed users, viral posts)
- Considerations for reliability, consistency, and scaling the system to millions of users