In 2018, it seems like Microservices are the de facto standard for a system architecture, but do they really live up to the hype?
The talk will show you an alternative approach - how we can tame complexity with the help of a clean, monolithic architecture that is modular to the core. Java has been deliberately built from the ground up on a modular basis: Methods, classes, packages. Additionally, the module system was introduced in Java 9. Modularity is based on the fundamental concepts of high cohesion and low coupling. We will look at these concepts, as well as some further measures, in detail. We'll check out what they are, how they are related to one another, and what the best practices are for applying them on all levels of the architecture.
The talk will show you how you can apply these basic concepts to develop a clean, monolithic architecture, based on Java 9 modules and the hexagonal architecture pattern.