Kurs · Schulung · Workshop

Spring Modulith

Zwei Tage Einstieg in modulare Monolithen mit Spring Modulith: Spring Boot Anwendungen in abgegrenzte Module gliedern und Vorteile verteilter Architektur ohne deren Komplexität 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.

Stimmen unserer Teilnehmer:innen

Diese Kunden haben Kurse im gleichen Themen-Cluster bei uns gebucht.Mehr Kunden →

Inhalt

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.

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

In-House Kurs anfragen

Mit dem Absenden akzeptierst du unsere Datenschutzbestimmungen.

Öffentlichen Termin anfragen

Kein passender öffentlicher Termin dabei? Trag dich unverbindlich ein – sobald genug Interesse besteht, planen wir einen neuen öffentlichen Termin und informieren dich zuerst.

Anzahl Teilnehmende (ungefähr)

Mehr als 3 Teilnehmende? Am besten direkt einen Wunschtermin als In-House Kurs anfragen.

Mit dem Absenden akzeptierst du unsere Datenschutzbestimmungen.

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.

Weitere Ressourcen:

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.