Design Twitter — Microservices Architecture of Twitter Service
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…