Introduction to Building Blocks for Modern System Design
Discover the core building blocks, like load balancers, databases, and messaging queues, that underpin scalable System Design. Learn this bottom-up approach to efficiently reuse components and build complex, reliable distributed systems.
The bottom-up approach for modern system design
Most system design problems share common patterns, even though their requirements differ. We group these recurring patterns into core building blocks that we’ll cover in this section. For example, a load balancer is a common building block and appears in most distributed system designs.
The purpose of separating the building blocks is to thoroughly discuss their design in a single discussion. This means we can use them later without having to go over them in detail again. We can think of building blocks as bricks for constructing more effective, capable systems.
Many of the building blocks we discuss are also available for actual use in the public clouds, such as Amazon Web Services (AWS), Azure, and Google Cloud Platform (GCP). We can use such constructs to build a system to further cement our understanding. (We won’t construct the system in this course, but we’ve left it as an exercise for interested learners.)
We’ll discuss the following building blocks in detail:
Domain Name System: This building block focuses on how to design hierarchical and distributed naming systems for computers connected to the internet via different internet protocols.
Load balancers:
In this section, we’ll examine how a load balancer distributes ...