Oliver Drotbohm - Pivotal
When evaluating different implementation approaches for a set of bounded contexts, a modular, monolithic application constitutes a pragmatic alternative to a microservices architecture that comes with challenges and complexities of a distributed system. Still, in the course of their life time, modularity and maintainability of monolithic applications very often degrade significantly. This is usually caused by the gap between architectural concepts and the codebase implementing those.
The talk briefly identifies the commonly observed issues in unstructured monoliths and discusses approaches to code organization and component structure, package design, transactions and the usage of events to implement bounded context interaction. We also take a look at supporting technologies and features of the Spring (Boot) eco-system to easily test individual bounded contexts and detect architectural violations. Attendees will learn how to easily implement architectural concepts into modular, monolithic applications, how to preserve the architecture over time and to prepare a potential split into multiple systems at a later point in time.