Decomposing complex applications
So far in this chapter, we’ve mostly explored the X-axis of the scale cube. This kind of scaling is often the most straightforward, as it involves running multiple instances of the same application to distribute traffic and improve availability.
Now we’ll turn our attention to the Y-axis of the scale cube, which focuses on decomposing (breaking down) an application by business functionality. This approach not only helps scale the system’s capacity and manage its complexity but also makes it easier to scale teams. By assigning ownership of individual services to different teams, organizations can distribute responsibility and move faster within well-defined domains.
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...