Modularisierung pragmatisch: Ein praktischer Deep Dive in Spring Modulith

Abstract

Ansätze zur Modularisierung von Anwendungen gibt und gab es in der langen Geschichte von Java schon einige. Dabei reicht die Palette von den Java-eigenen Features wie Packages und Sichtbarkeiten, über Maven-Module, Modulsysteme wie OSGi oder JPMS bis hinzu Microservices. Mit Spring Modulith steht ein weiteres Werkzeug speziell für Spring Boot-Anwendungen zur Verfügung, das eine pragmatische Lösung zum Bauen von "modulitischen Monolithen" bietet, also Anwendungen, die zwar in einer gemeinsamen Code-Basis entwickelt werden ("Monolith"), innerhalb dieser aber sauber modularisiert sind ("modulithisch"). Das Versprechen: wartbarer und verständlicher Code ohne den Overhead von Microservices. In diesem Talk baue ich Schritt-für-Schritt eine Anwendung, an der wir die wichtigsten Features von Spring Modulith sehen werden und prüfen, wo die Grenzen dieses Ansatzes liegen und wie solche Anwendungen bei Bedarf doch in Microservices weiterentwickelt werden könnten.

Slides und Material

Slides und Material kommen nach dem Talk