Exploring high-level design
Now that we have a clear understanding of the functional and non-functional requirements, as well as the scale calculations, let’s dive into the high-level design of the Twitter-like service. The goal is to create an architecture that is scalable, reliable, and efficient in handling the massive volume of tweets, users, and interactions. Figure 11.2 shows the high-level design of the Twitter-like system, which includes a load balancer, API gateway, microservices such as User Service and Tweet Service, database tables, the caching layer, Kafka, and an object store. We will discuss these components at a high level in this section and in the next section do a deep dive into some of them.
Figure 11.2: High-level system design of Twitter
Figure 11.2 shows different modules and microservices that need to be developed to build a system like Twitter. These are listed as follows, along with a brief explanation for each:
-
...