Oliver Drotbohm is Senior Principal Software Engineer at Pivotal, Java Champion and member of the JPA 2.1 expert group. He has been into developing enterprise applications and open source projects for over 12 years now. His working focus is centered around software architecture, DDD, REST, and persistence technologies. He is regularly speaking at German and international conferences and the author of technology articles as well as the first book on Spring Data.
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 later on.