On behalf of the community and everyone who contributed, I’m proud to announce the release of Spring Modulith 1.0 GA. What started as an R&D side project over 5 years ago, became an experimental Spring project in 2022 is now available as a fully supported, top-level project to the Spring community.
Just as Spring has evolved over the last 20 years we always wanted Java developers to be able to build software that’s evolvable over time. Back then, placing dependency injection at the heart of the component model was revolutionary and enabled developers to unit test their code easily. Spring’s support for integration testing outside an application server was unprecedented at the time, too, and helped to raise the quality of enterprise applications significantly. We now continue that mission on a slightly higher, architectural level of abstraction.
In the same way that Spring Boot has an opinion on the technical arrangement of an application, Spring Modulith implements an opinion on how to structure it functionally and how the individual, logical parts of it should interact with each other. As a result, it allows developers to build high-quality applications that are evolvable to accommodate changing business requirements over time.
At its core, Spring Modulith provides…
- … a convention-based module model for Spring Boot applications
- … verification that the functional architecture does not accidentally degrade
- … the ability to integration test functional modules individually
- … an opinionated, eventually consistent application module interaction model
- … support to derive architectural documentation from the arrangement
- … application observability and actuators driven by the functional architecture
I would like to thank everyone who has accompanied the project until this point though ideas, feedback, or even pull requests.