Requirements of Twitter’s Design

Lesson 141 of 25610 min readPremium lesson preview
In this lesson3 sections

Requirements of Twitter’s Design

Define a read-heavy microblogging workload and its consistency boundaries. A successful post, a feed entry, a search result, and a displayed like count can have different freshness requirements.

Requirements

We will outline the system’s functional and non-functional requirements below.

Functional requirements

The system must support the following core features:

  • Post tweets: Users can publish messages containing text and media.

  • Delete tweets: Users can remove their own content.

  • Like or remove a like: Record a user’s current like state for a post. The later sketch calls removal “dislike”; this exercise does not introduce a separate public downvote feature.

  • Reply: Users can reply to public tweets.

  • Search: Users can search for content using keywords, hashtags, or usernames.

  • View timelines: The home timeline contains eligible posts and reposts from followed accounts. A user timeline shows posts by one selected account. Personalized recommendations outside the follow graph are an extension, not part of this following-only baseline.

  • Follow or unfollow: Users can follow or unfollow other accounts.

  • Retweet: Users can share other users’ public tweets.

Non-functional requirements

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.