Vom Monolithen zum Modulithen: Event-basierte Architektur mit Spring Modulith
Details
Wächst ein klassischer Spring-Boot-Monolith, besteht die Gefahr, dass er sich schleichend zu einer großen, unstrukturierten Code-Basis entwickelt ("Big Ball of Mud"). Abhängigkeiten nehmen zu, fachliche Grenzen verwischen, und Änderungen werden zunehmend riskant. Die Aufteilung in Microservices kann eine Lösung sein, ist aber aufgrund ihrer Komplexität nicht in allen Fällen gerechtfertigt.
Spring Modulith geht einen Mittelweg und bietet uns Werkzeuge zur Modularisierung innerhalb unseres Monolithen an. Module sind hier Java-Packages, die mit klaren Sichtbarkeits- und Abhängigkeitsregeln versehen werden. Als Schnittstelle zwischen den Modulen lassen sich neben klassischen Methodenaufrufen auch Spring Application Events zur Entkopplung einsetzen.
In diesem Vortrag zeige ich euch anhand eines praktischen Beispiels, wie Spring Modulith funktioniert. Gemeinsam bauen wir eine bestehende Spring-Boot-Anwendung Schritt für Schritt zum Modulithen um und sehen dabei, welche typischen Probleme Event-basierter Architekturen (Eventual Consistency, Verlust von Nachrichten, Nachvollziehbarkeit) auftreten und wie wir sie mit Werkzeugen wie dem Outbox-Pattern lösen können. Außerdem werfen wir einen Blick auf neue Testmöglichkeiten für die entkoppelten Module.
Nils Hartmann ist freiberuflicher Softwareentwickler und -architekt, Coach und Trainer. Seine Schwerpunkte sind die Entwicklung von Backends mit Java und Spring sowie Frontends mit React. Außerdem gibt er Schulungen und Workshops zu diesen Themen.
