Spring Modulith (Online) - Patrick Baumgartner, Falk Sippach - Deutsch
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
Deine Trainer:innen
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.
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.