The Modular Monolith Abstract Style
摘要
In Chapter 13 , we explored one path to evolve the Layered Monolith style into a new, distributed style. Agility improved, but only modestly. Why? Because the challenge with technically partitioned layered architectures is that routine development often involves changes to most or all layers. These multilayer changes require a full regression test of the entire system, and, when these changes introduce breaking changes, releases require coordination. A large component of the agility the microservices architecture promises derives from defining module boundaries not by technical area, but by bounded context. This approach to granularity enables the overwhelming majority of changes to be confined to a single microservice. The trade-offs inherent to microservices, as you will see in the chapter on this style, are vast. Can a system exhibit comparable agility to microservices without the cost and complexity? The Tailor-Made model says “yes.” We start with just a subset of the constraints that define the microservices architecture to derive an abstract style that offers a compelling balance of flexibility and simplicity. Consequently, this style achieves a comparable level of decoupling seen in a microservices architecture within a monolith. This architectural style just might make architects love the monolith again.