Workshop: Event-basierte Modularisierung mit Spring Modulith

Abstract

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 solcher modularer Applikationen innerhalb einer Spring-Boot-Code-Basis ('Modulith'), ohne gleich den Schritt zu verteilten Microservices gehen zu müssen. Als Schnittstelle zwischen den Modulen können neben klassischen Methodenaufrufen auch Spring Application Events zur Entkopplung eingesetzt werden. Dazu stellt Spring Modulith Werkzeuge bereit, mit denen sich Events transaktional absichern, nachvollziehen und bei Fehlern erneut zustellen lassen. Auch die Integration mit externen Message Brokern (z.B. Kafka) wird ermöglicht.

In diesem Workshop zeige ich euch anhand eines praktischen Beispiels, wie Spring Modulith funktioniert. Dazu sehen wir uns typische Probleme Event-basierter Architekturen (Eventual Consistency, Verlust von Nachrichten, Nachvollziehbarkeit der Verarbeitung) an und prüfen, wie wir diese mit Spring Modulith lösen können. Außerdem werfen wir einen Blick auf die Testmöglichkeiten für die entkoppelten Module. Ihr seid hier richtig, wenn ihr euch für Modularisierung interessiert, denn die Konzepte lassen sich auch ohne Spring-Kenntnisse nachvollziehen. Nach dem Workshop könnt ihr fundiert entscheiden, ob Spring Modulith für eure Anwendung das richtige Werkzeug ist.

Slides und Source Code

Slides und Material kommen nach dem Workshop

Meine Workshops zum Thema

Rund um das Thema Spring und Spring Boot biete ich auch In-House-Workshops und Schulungen an.

Mehr Informationen dazu findest du hier.