Spring Modulith
Schulung & Kurs

Zwei Tage intensiver Einstieg in die Implementierung von modularen Monolithen mit Spring Modulith. Lernen Sie, wie Sie Spring Boot Anwendungen in klar abgegrenzte logische Module unterteilen können, um viele Vorteile einer verteilten Architektur ohne deren volle Komplexität zu nutzen.

Spring Modulith ist ein relativ neues Projekt im Spring-Ökosystem, das Spring Boot-Anwendungen dabei unterstützt, in klar abgegrenzte logische Module unterteilt zu werden. Anstatt sofort auf Microservices zu setzen, bietet ein modularer Monolith – eine Anwendung, die intern in klar abgegrenzte Module unterteilt ist – viele der Vorteile einer verteilten Architektur, ohne dabei deren volle Komplexität zu übernehmen.

In diesem Workshop lernen die Teilnehmenden, wie sie Spring Modulith (ab Version 1.3.4) in ihren eigenen Spring Boot-Projekten einsetzen und modulare Architekturprinzipien in der Praxis umsetzen können.

Wir legen Wert auf die korrekte Einordnung: Spring Modulith ist als Erweiterung für Spring Boot konzipiert und setzt eine Spring Boot-Anwendung voraus. Grundkenntnisse in Spring Boot sollten daher vorhanden sein.

Kurse für Teams:

Gerne führen wir zugeschnittene Kurse für euer Team durch - vor Ort, remote oder in unseren Kursräumen.

In-House Kurs Anfragen

 

  Rolf Jufer  

Kursinhalt:


In diesem Workshop lernen die Teilnehmer, wie sie Spring Modulith (ab Version 1.3.4) in ihren eigenen Spring Boot-Projekten einsetzen und modulare Architekturprinzipien in der Praxis umsetzen können. Wir legen besonderen Wert auf:

– Die theoretische Einordnung:
... - Was sind modulare Monolithen und warum ist der Ansatz attraktiv?
– Die interne Funktionsweise von Spring Modulith:
... - Wie werden Module abgegrenzt?
... - Wie unterstützt Spring Modulith den Umgang mit Domain Events, Logging und Teststrategien?
– Die praktische Anwendung:
... - Schrittweise Erweiterung einer Spring Boot-Anwendung mit Modulith-Funktionalitäten
– Ein kritischer Vergleich:
... - Wann ist ein modularer Monolith gegenüber Microservices vorteilhaft und wo liegen die Grenzen?

Wichtig: Da Spring Modulith als Erweiterung für Spring Boot entwickelt wurde, sind Grundkenntnisse in Spring Boot Voraussetzung.

Inhalte und Themen:

1. Grundlagen modularer Monolithen
– Definition und Vorteile eines modularen Monolithen
– Architekturprinzipien: Kapselung, hohe Kohäsion, lose Kopplung
– Spring Modulith im Kontext: Wie unterscheidet sich der Ansatz von klassischen Monolithen und Microservices?

2. Spring Modulith im Überblick
– Funktionsweise: Erkennen von Modulen über Paketstrukturen und Konventionen
– Differenzierung: öffentliche Schnittstellen vs. interne Implementierungsdetails
– Interne Mechanismen: Einsatz von ArchUnit zur Überwachung von Modulgrenzen

3. Modulinteraktion und Domain Events
– Implementierung ereignisgesteuerter Kommunikation zwischen Modulen
– Veröffentlichen und Empfangen von Domain Events mit @ApplicationModuleListener
– Logging und Tracking der Event-Zustellung

4. Praxis: Entwicklung eines modularen Monolithen
– Aufsetzen eines Spring Boot-Projekts mit Spring Modulith
– Definition von Modulen und Visualisierung von Abhängigkeiten
– Schreiben und Ausführen von Integrationstests mit @ApplicationModuleTest
– Generieren von Dokumentation (z.B. AsciiDoc/HTML) direkt aus dem Code

5. Microservices vs. modularer Monolith - Reflexion
– Diskussion: Wann macht welcher Ansatz Sinn?
– Erfahrungsberichte und Best Practices
– Ausblick: Wie geht es nach dem Workshop weiter?

Wir fokussieren uns darauf, eine spezifische Auswahl an Themen genau zu betrachten und zu verstehen.


Disclaimer: Der effektive Kursinhalt kann, abhängig vom Trainer, Durchführung, Dauer und Konstellation der Teilnehmer:innen von obigen Angaben abweichen.

Ob wir es Schulung, Kurs, Workshop, Seminar oder Training nennen, wir möchten Teilnehmer/innen an ihrem Punkt abholen und mit dem nötigen praktischen Wissen ausstatten, damit sie die Technologie nach der Schulung direkt anwenden und eigenständig vertiefen können.

Ziel:

Nach diesem Workshop werden die Teilnehmer:

- Die Grundlagen und Vorteile modularer Monolithen verstehen
- Wissen, wie Spring Modulith als Erweiterung des Spring Boot Moduls definiert ist und wie dessen Grenzen technisch durchgesetzt werden
- Die interne Funktionsweise von Spring Modulith verstehen (z.B. Erkennen von Modulen über Paketstrukturen, Event-Publishing und Logging)
- In der Lage sein, Domain Events als Mittel zur lose gekoppelten Kommunikation zwischen Modulen zu implementieren
- Eigene Spring Boot-Projekte mit dem Modulith-Ansatz strukturiert aufsetzen und testen können
- Die Vor- und Nachteile eines modularen Monolithen im Vergleich zu Microservices reflektieren und bewerten können


Form:

Bewährter Mix aus Erläuterung, Live-Coding und praktischen Übungen. Die Teilnehmer werden eine Beispielanwendung schrittweise mit Spring Modulith erweitern und dabei die verschiedenen Konzepte in der Praxis anwenden.


Zielgruppe:

Der Workshop richtet sich an Java-Entwickler und Software-Architekten, die bereits mit Spring Boot vertraut sind und lernen möchten, wie sie ihre Anwendungen sauber modularisieren können.

Voraussetzungen: Grundkenntnisse in Java und Spring (insbesondere Spring Boot) sind erforderlich.
Die Teilnehmer können eine Mischung aus Theorie, Praxis (Live-Coding und praktische Übungen) und Reflexion erwarten.


Voraussetzungen:

Grundkenntnisse in Java und Spring Boot sind erforderlich. Die Teilnehmer sollten bereits Erfahrung in der Entwicklung mit Spring Boot haben.


Vorbereitung:

Jeder Teilnehmer erhält nach der Anmeldung einen Fragebogen und eine Installationsanleitung zugestellt. Passend zu den Antworten senden wir ein individuelles Feedback.

In-House Kurs anfragen:

In-House Kurs Anfragen

Trage dich in die Warteliste ein für weitere öffentliche Kurs-Termine. Sobald wir genügend Personen auf der Warteliste haben, klären wir einen möglichst für alle passenden Termin ab und schalten einen neuen Termin auf. Falls du direkt mit zwei Kollegen oder Kolleginnen teilnehmen möchtest, können wir sogar direkt einen öffentlichen Kurs für euch planen.

Warteliste

(Falls ihr bereits mehr 3 Teilnehmer:innen oder mehr habt, klären wir mit euch direkt euren Wunschtermin ab und schreiben den Kurs aus.)

Mehr über Spring Modulith



Spring Modulith ist ein Projekt im Spring-Ökosystem, das die Entwicklung modularer Monolithen unterstützt. Es bietet Werkzeuge zur Definition, Überwachung und Dokumentation von Modulgrenzen in Spring Boot-Anwendungen.




Hintergrund


Spring Modulith wurde 2022 von Oliver Drotbohm und dem Spring-Team entwickelt. Es entstand aus der Erkenntnis, dass nicht jede Anwendung sofort als Microservices-Architektur implementiert werden muss, aber dennoch von klaren Modulgrenzen profitieren kann.


Das Projekt baut auf Konzepten auf, die in Moduliths entwickelt wurden, einer Vorgänger-Bibliothek, die nun in Spring Modulith aufgegangen ist. Es nutzt ArchUnit zur Durchsetzung architektonischer Regeln und Grenzen.


Spring Modulith ist besonders relevant für Teams, die die Komplexität von Microservices vermeiden, aber dennoch eine saubere, modulare Architektur implementieren möchten. Es bietet einen pragmatischen Mittelweg zwischen monolithischen und verteilten Architekturen und ermöglicht eine spätere Migration zu Microservices, falls erforderlich.