Growing Microservice-Based Systems
The benefits of microservices are seen most clearly in very dynamic environments. Due to the independent deployment of individual microservices, teams can work in parallel on different features without the need for significant coordination. This is especially advantageous when it is unclear which features are really meaningful and experiments on the market are necessary to identify promising approaches.
In this sort of environment, it is difficult to plan a good split of the domain logic into microservices right from the start. The architecture has to adjust to the evidence.
- • The separation of a system into its domain aspects is even more important for microservices than in the context of a traditional architectural approach. This is because the domain-based distribution also influences the distribution into teams and therefore the independent working of the teams—the primary benefit of microservices (section 7.1).
- • Section 7.2 demonstrated that tools for architecture management cannot readily be used in microservice-based architectures.
- • As section 7.3 discussed, it is difficult to modify the architecture of microservices—especially in comparison to deployment monoliths.
- • Microservices are especially beneficial in dynamic environments—where it is even more difficult to determine a meaningful architecture right from the start.
The architecture has to be changeable; however, this is difficult due to the technical limitations. This section shows how the architecture of a microservice-based system can nevertheless be modified and developed further in a step-by-step manner.