Course · Training · Workshop
Spring Modulith
Two days introducing modular monoliths with Spring Modulith: split Spring Boot applications into delineated modules and gain benefits of a distributed architecture without its complexity.
Spring Modulith is a relatively new project in the Spring ecosystem that helps Spring Boot applications to be divided into clearly delineated logical modules. Instead of immediately relying on microservices, a modular monolith - a single application that is internally structured into modules - enables many of the benefits of a distributed architecture without the full complexity. In this workshop, participants will learn how to use Spring Modulith (from version 1.3.4) in their own Spring Boot projects and how to implement modular architecture principles in practice. We emphasize correct classification: Spring Modulith is designed as an extension for Spring Boot and requires a Spring Boot application. Basic knowledge of Spring Boot should therefore be available.
What participants say






These customers booked courses in the same topic cluster.More customers →
Content
In this workshop, participants will learn how to use Spring Modulith (from version 1.3.4) in their own Spring Boot projects and how to implement modular architecture principles in practice. We place particular emphasis on:
– The theoretical classification:
- What are modular monoliths and why is the approach attractive? – The internal functioning of Spring Modulith:
- How are modules delimited?
- How does Spring Modulith support the handling of domain events, logging and test strategies? – The practical application:
- Step-by-step extension of a Spring Boot application with Modulith functionalities – A critical comparison:
- When is a modular monolith advantageous compared to microservices and what are the limitations?
Important: As Spring Modulith was developed as an extension for Spring Boot, basic knowledge of Spring Boot is a prerequisite.
Contents and topics:
-
Basics of modular monoliths – Definition and advantages of a modular monolith – Architectural principles: Encapsulation, high cohesion, loose coupling – Spring Modulith in context: How does the approach differ from classic monoliths and microservices?
-
Spring Modulith at a glance – How it works: Recognizing modules via package structures and conventions – Differentiation: public interfaces vs. internal implementation details – Internal mechanisms: Use of ArchUnit to monitor module boundaries
-
Module interaction and domain events – Implementation of event-driven communication between modules – Publishing and receiving domain events with @ApplicationModuleListener – Logging and tracking of event delivery
-
Practice: development of a modular monolith – Setting up a Spring Boot project with Spring Modulith – Definition of modules and visualization of dependencies – Writing and executing integration tests with @ApplicationModuleTest – Generating documentation (e.g. AsciiDoc/HTML) directly from the code
-
Microservices vs. modular monolith - reflection – Discussion: When does which approach make sense? – Experience reports and best practices – Outlook: What next after the workshop?
We focus on a specific set of topics to look at and understand in detail.
The actual course content may differ from the above depending on the trainer, delivery, duration and the composition of participants.
Request this course in-house
Request a public date
No suitable public date? Register without obligation — once there is enough interest we schedule a new public date and let you know first.
More about Spring Modulith
Spring Modulith is a project in the Spring ecosystem that supports the development of modular monoliths. It provides tools for defining, monitoring, and documenting module boundaries in Spring Boot applications.Further resources:
Background
Spring Modulith was developed in 2022 by Oliver Drotbohm and the Spring team. It emerged from the realization that not every application needs to be immediately implemented as a microservices architecture, but can still benefit from clear module boundaries.
The project builds on concepts developed in Moduliths, a predecessor library that has now been incorporated into Spring Modulith. It uses ArchUnit to enforce architectural rules and boundaries.
Spring Modulith is particularly relevant for teams that want to avoid the complexity of microservices but still implement a clean, modular architecture. It offers a pragmatic middle ground between monolithic and distributed architectures and enables later migration to microservices if required.


