Oft sollen Anwendungen in entkoppelten Modulen entwickelt werden, um Ordnung und Struktur in unseren Code zu bekommen und darüber Wartbarkeit zu garantieren. Microservices stellen dafür einen sehr konsequenten Ansatz dar, können aber auch eine hohe Komplexität mit sich bringen. “Monolithen” hingen sind vergleichsweise bequem in der Entwicklung, stehen aber im Verdacht, schnell zu einem unübersichtlichen “Big Ball of Mud” zu werden. Diesem Problem versucht “Spring Modulith” entgegenzutreten. Damit werden Spring Boot-Anwendungen in einer gemeinsamen Codebasis entwickelt (”monolithisch”), innerhalb dieser werden aber Module definiert ("modulitisch"), deren korrekte Verwendung anhand von Architekturregeln kontinuierlich überprüft und sichergestellt wird. Außerdem erweitert Spring Modulith das Spring-eigene Eventsystem, um auch zur Laufzeit für eine Entkopplung der Module zu sorgen.
In diesem Live-Coding-Vortrag möchte ich anhand praxisnaher Beispiele eine Einführung in Spring Modulith geben und mit euch diskutieren, welche Konsequenzen sich für unsere Anwendungen daraus ergeben und für welche Szenarien dieser Ansatz besonders geeignet ist...
Slides und Material kommen nach dem Talk