System design patterns

The evolution of systems design is one where various pressures impacted the way systems were built and deployed to solve ever more complex business problems. This section will cover these patterns in more detail and provide additional insights into how they work and the challenges they faced, forcing evolution. To understand how solution architecture has progressed, it is important to define a few key concepts, namely primitives, subsystems, and systems.

Regardless of the design pattern, primitives are the base level of the overall solution, often referred to as functions, tasks, or microservices, depending on the style. By design, a primitive is supposed to be the most basic unit that is capable of performing an action. Primitives are often so specialized that, by themselves, they are not capable of having a direct impact on the subsystem they belong to. Instead, they perform one task quickly and efficiently. Subsystems are logical groupings of primitives that form a discrete business function. Subsystems do not have to be a single component, although they can be depending on the design architecture. They do, however, need to have a logical flow that results in a business function being achieved. The primitives that make up the subsystem could be function calls within the same code block or a completely separate microservice, as long as the results end in a completed outcome for the system. Systems are the top level of the solution, and are often made up of many subsystems that intercommunicate with each other, or other systems, to complete an entire process from beginning to end.

Cloud native architectures are the product of this evolution. It's important to understand the makeup of an architecture and the originations of the patterns so further evolution can continue and the best design for a specific business requirement can be used and evolved over time. There are three main design patterns, namely monolithic, client server, and services. Each uses the concept of systems, subsystems, and primitives. However, the implementation of each is the key differentiators that allow for them to be more robust and cloud native.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset