Design Twitter — Microservices Architecture of Twitter Service

Think Software
14 min readApr 2, 2021

Twitter Design

Twitter is an online social networking service where users post and read short messages called “tweets”.

Most candidates try to design Twitter as a monolithic service in System Design Interview. If you check several existing online resources, they also try to design Twitter as a monolithic service. However, in our opinion, designing a gigantic service like Twitter as a monolithic service shows that the candidate lacks experience in designing distributed systems. Nowadays, it is a norm to design distributed systems in terms of microservices and even lamdas (or functions). No one is writing a new service as a monolithic service and companies are gradually converting their big monolithic services to a set of microservices. Hence, the candidates should discuss Twitter system design as a microservices architecture.

Requirements

Let us discuss the functional and non-functional requirements now.

Functional Requirements

The following are the main functional requirements for the Twitter service.

1. The users can post new messages or tweets (this is a write operation).

2. The size of a tweet is 140 characters at most.

3. A user can delete his tweets but not update/edit his posted tweets (this is a write operation).

  • Allowing updates to…

--

--