Du interessierst dich für KI? 🔎 Entdecke unsere KI-Trainings.

Spring Modulith

2 Tage

Termine und Buchung

Erhalte einen praxisnahen Überblick über Spring Modulith. Dies ist ein moderner Ansatz, um Anwendungen modular zu strukturieren, ohne sich mit der Komplexität verteilter Architekturansätze auseinandersetzen zu müssen.

Microservices gelten oft als Königsweg zur Modularisierung – bringen aber erhebliche technische und organisatorische Herausforderungen mit sich. Modulithen bieten eine pragmatische Alternative: einen modularen Monolithen, der Fachlichkeit klar strukturiert und langfristig wartbar bleibt.

Anhand einer Beispielanwendung wenden wir die Konzepte praktisch an. Wir diskutieren, wie sich Abhängigkeiten kontrollieren, Architekturregeln automatisiert prüfen sowie Dokumentation generieren lassen und wie bestehende Systeme schrittweise modernisiert werden können.

Agenda

Grundlagen

  • Motivation & Einordnung
    • Modularität im Vergleich: Modulith vs. Microservices
    • Evolutionäre Architektur
  • Projektsetup & Moduldefinition
    • Package-Strukturen & Moduldetektion
    • Simple, Advanced, Nested, Open Modules
    • Named Interfaces
    • Custom Module Detection

Non-Runtime Support

  • Architekturprüfung
    • Abhängigkeitsregeln & Architekturtests
    • ArchUnit-Integration
    • Customizing Verification Options
  • Grundlagen von Modultests
    • Application Module Testing Support
    • Umgang mit Abhängigkeiten
    • Bootstrap-Modes
    • Change-Aware Test Execution
  • Dokumentation
    • Modulith-Diagramme (C4, UML)
    • Application Module Canvas

Runtime support

  • Kommunikation zwischen Modulen
    • Domain Events – synchron & asynchron
    • Event Publication Registry (Persistenz, Wiederholung, Completion-Modes)
    • Staleness checks
    • Auswirkungen auf Integrationstests
    • Scenario API für Event-getriebene Integrationstests
    • PublishedEvents & AssertablePublishedEvents
    • Passage of Time Events mit Moments API
  • Integration in den Entwicklungsprozess
    • CI/CD & Fitness Functions
    • Runtime Support: ApplicationModuleInitializer
    • Production-Ready Features:
      • Modulith Actuator Endpoint /actuator/modulith
      • Observability (Micrometer, Tracing mit OpenTelemetry, Zipkin etc.)
      • Modulspezifische Flyway Migrationen
    • Konfigurierbare Modulith Properties (z. B. Staleness-Checks)

Misc

  • jMolecules – DDD-Konzepte explizit machen (optional)
    • Aggregate, Entities, Value Objects
    • Domain Events & Event Handler
    • Repositories
    • Module-Annotation
    • Nutzung in Modulith-Dokumentation & Canvas
    • ArchUnit-Integration für DDD- und Architekturregeln
  • Ausblick & Diskussion
    • Migration von Legacy-Anwendungen zu Modulithen
    • Hybride Architekturen (Modulith + Microservices)
      • Event Externalization (Kafka, AMQP, JMS, Spring Messaging)
    • Best Practices für DDD mit jMolecules
    • Erfahrungen & Lessons Learned

Dein Nutzen

Konkrete Methoden und Best Practices, um Spring-Anwendungen modular, wartbar und ohne unnötigen Overhead zu gestalten.

Transparenz und Kontrolle durch automatisierte Architekturtests und generierte Diagramme.

Praktische Anwendung von DDD- und Architekturkonzepten, sichtbar gemacht mit jMolecules und Modulith-Tools.

Zukunftssichere Systeme entwickeln, die sich leichter anpassen, erweitern und skalieren lassen.

Zielgruppe

  • Softwareentwickler:innen, die mit Spring Boot arbeiten und ihre Anwendungen klar modular strukturieren möchten.
  • Softwarearchitekt:innen, die Microservices kritisch hinterfragen oder hybride Architekturen entwerfen wollen.
  • Teams, die bestehende Monolithen modernisieren und schrittweise in modulare Systeme überführen möchten.

Lernziele

Du kannst einordnen, welche Idee hinter Modulithen steckt und wie sie sich von Microservices unterscheiden.

Du wirst Module mit Spring Modulith definieren und strukturieren.

Implementiere geeignete Kommunikationsmuster zwischen Modulen (synchron, asynchron, Events).

Du kannst Architekturregeln automatisiert überprüfen und sie in CI/CD-Pipelines integrieren.

Du kannst eine modulare Beispielanwendung eigenständig entwerfen und erweitern.

Deine Trainer:innen

socreatory Trainer:in Falk Sippach

Falk Sippach

embarc

Architekturbewertungen, Java Experte

  • Agile Softwarearchitektur
  • Application Programming Interfaces
  • CPSA Foundation-Level
  • Documentation-as-Code
  • Evolution und Verbesserung von Softwarearchitekturen
  • Flexible Architekturen
  • Phantastische Diagramme
  • Spring Modulith

Als Trainer, Berater und Architekt ist Falk stets auf der Suche nach dem Funken Leidenschaft, den er bei seinenTeilnehmern, Kunden und Kollegen entfachen kann. Bereits seit über 15 Jahren unterstützt er in meist agilen Softwareentwicklungsprojekten im Java-Umfeld, anfangs als Entwickler, später als Projektleiter, Architekt und Coach. Falk ist überzeugt, dass lebenslanges Lernen die Voraussetzung für die berufliche Selbstentfaltung und dauerhafte Freude am Tun ist. Trotz der Begeisterung für Neues behält er immer auch die Menschen und gewachsene Strukturen im Blick, um ausgewogene Lösungen entwickeln zu können. Als aktiver Bestandteil der Community teilt er sein Wissen gern in Artikeln, Blog-Beiträgen sowie bei Vorträgen auf Konferenzen oder User Group Treffen und unterstützt bei der Organisation diverser Fachveranstaltungen. Video: Was ist eigentlich Documentation as Code? Falk erklärt es euch im Stream mit Lisa Moritz.

socreatory Trainer:in Patrick Baumgartner

Patrick Baumgartner

42talents

Java, Spring, Cloud

  • Spring Boot Essentials
  • Spring Modulith
  • Spring Security in der Praxis

Patrick Baumgartner ist Java Champion, leidenschaftlicher Software Crafter und technischer Agile Coach bei 42talents. Er unterstützt Teams beim Bau eleganter, robuster Lösungen und spezialisiert sich auf Cloud-Software mit Java, das Spring-Ökosystem und andere Open-Source-Technologien.

Als aktives Mitglied der Schweizer Communities für Software Craft, Java und Agile teilt er sein Wissen regelmäßig. Er legt Wert auf praxisnahe Zusammenarbeit, Experimentieren und kontinuierliche Verbesserung – und lernt selbst am liebsten gemeinsam mit anderen.

Reinlesen & Vertiefen

Inhouse Training

Du kannst dieses Training auch als Inhouse-Training exklusiv für dein Team buchen. Bitte nutze dafür unser Anfrage-Formular.

Jetzt anfragen

Relevante weitere Trainings