Basis of successful software
Good software architecture is the foundation of successful software. When planning a system, software architects and developers work out an architectural blueprint tailored to the business logic. Development teams often deviate from the blueprint already during implementation due to unforeseeable details and under time pressure, thus building up initial technical debt. The result: maintenance becomes more complex, tougher and more expensive from year to year.
Microservices are very popular in software architecture. The hope: large, cumbersome monoliths can be broken down into smaller, more manageable microservices. Sounds good, but it involves many pitfalls: a conversion to microservices is time-consuming and - if done incorrectly - can lead to a worse result than in the previous state. The right approach is crucial.