Katkat

Design a Twitter-like microblogging service

AsanaSoftware Engineer · Technical Screen

Last updated

This question evaluates system design competencies including scalable architecture, data and API modeling, feed generation trade-offs, storage and caching strategies, consistency expectations, and operational concerns such as rate limiting, abuse mitigation, and observability.

Design a Twitter-like microblogging system. You can describe it verbally and with structured notes.

Requirements:

  • Users can post short messages.
  • Users can follow/unfollow others.
  • Users can view a home timeline/feed with recent posts from accounts they follow.
  • Support high read volume and write volume.

Clarify and address:

  • Core APIs and data models.
  • Feed generation approach (fan-out on write vs fan-out on read, or hybrid).
  • Storage choices, caching, pagination, and ranking.
  • Consistency expectations (e.g., how quickly a new post should appear).
  • Operational concerns: rate limiting, abuse/spam, and observability.