Introduction to Building Blocks for Modern System Design
In this lesson1 sections
Introduction to Building Blocks for Modern System Design
The next lessons examine reusable components such as load balancers, databases, and queues. For each one, learn its interface, the problem it addresses, and the behavior it exposes under load or failure. Later case studies combine these components into larger designs.
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.
Studying a component separately gives you a model to reuse in later designs. You should still check whether its assumptions fit the new workload. A cache with acceptable freshness for a feed may not satisfy a different operation’s consistency requirement.
Cloud providers such as AWS, Azure, and Google Cloud offer implementations of many of these components. As an optional exercise, build a small system with one of them and compare the documented interface and limits with the design in the course. Implementation work is outside the required lessons.
Premium Content
Upgrade to Premium to unlock this lesson and all other premium content.