12. Twitter
Easy
Design a social feed like twitter
- Functional Requirements
- The users should be able to follow other users.
- The posts, statuses, and app activity of other people, pages, and groups they have followed should be visible to users.
- On posts, users can "like", react and comment.
- The most recent/trending posts ought to be immediately updated in the News Feed.
- The Feeds can be text, images or videos.
- There should be three sections to the timeline:
- Users Timeline: Users can view their own posts/tweets and posts they have shared on their timeline.
- Home Timeline: This will show the posts from users who are following them.
- Search Timeline: When users conduct a keyword or hashtag search, they are shown posts containing those specific terms.
- Nonfunctional Requirements
- The user should be able to post in just a few seconds. Only one and a half seconds of latency should be experienced by the user.
- Users should be able to tweet/post millions of followers within a few seconds (5 seconds).
- Assumptions
- Each post is 1KB in size.
- Estimated Usage
- The system will have 1 billion DAU (Daily Active Users).
- A user fetches the newsfeed 10 times per day.
- Requires to handle 1e10 requests per day and about 116K QPS.
Seen this question in a real interview before?
Not all editor features are supported on mobile