Decomposing complex applications
So far in the chapter, we have mainly focused our analysis on the x-axis of the scale cube. We saw how it represents the easiest and most immediate way to distribute the load of an application, also improving its availability. In the following section, we are now going to focus on the y-axis of the scale cube, where applications are scaled by decomposing them by functionality and service. As we will learn, this technique allows us to scale not only the capacity of an application, but also, and most importantly, its complexity.
Monolithic architecture
The term monolithic might make us think of a system without modularity, where all the services of an application are interconnected and almost indistinguishable. However, this is not always the case. Often, monolithic systems have a highly modular architecture and a good decoupling between their internal components.
A perfect example is the Linux OS kernel, which is part of a category called monolithic kernels ...