Modularisierung hilft, die Komplexität großer Anwendungen beherrschbar zu machen. Sauber geschnittene Module lassen sich unabhängig voneinander entwickeln und testen. Ein Modul repräsentiert eine abgeschlossene Einheit, üblicherweise entlang fachlicher Grenzen. Da Module innerhalb einer Anwendung mit anderen Modulen interagieren müssen, brauchen sie aber explizite Schnittstellen. Spring Modulith ermöglicht die Entwicklung modularer Applikationen innerhalb einer Spring-Boot-Code-Basis ("Modulith"), ohne den Schritt zu Microservices gehen zu müssen. Java-Packages werden dabei als Application Modules interpretiert, die Code, API und sogar Datenbankmigrationen umfassen. In diesem Workshop möchte ich euch zeigen, wie ihr mit Spring Modulith Module schneidet, Schnittstellen definiert und die Einhaltung eurer Architekturregeln automatisch prüft. Neben der statischen Architektur betrachten wir auch das Laufzeitverhalten. Wir sehen, wie ihr Module über asynchrone Spring Application Events entkoppeln könnt. Dafür ergänzt Spring Modulith den Spring-eigenen Event-Mechanismus, um Konsistenz auch bei technischen Problemen sicherzustellen und den Event-Fluss über Modulgrenzen hinweg im Tracing nachvollziehbar zu machen. Außerdem schauen wir uns an, wie sich externe Message Broker wie Kafka anbinden lassen und welche neuen Möglichkeiten (und Herausforderungen!) sich für das Testen unserer asynchronen Module ergeben. Für die Übungen im Workshop sind Vorkenntnisse in Spring Boot hilfreich. Für das Verständnis der Konzepte reichen Java-Kenntnisse.
Slides und Material kommen nach dem Workshop
Rund um das Thema Spring und Spring Boot biete ich auch In-House-Workshops und Schulungen an.
Mehr Informationen dazu findest du hier.