For small apps or for very small services you are right, maven modules introduces unnecessary complexity. Both technical and cognitivive (*they are "harder" to reason about*) However, modules might help you to "visualize" in a easy way the boundaries within your application, what makes easier to make decisions when it comes to place components in one or another scope / boundary. A well-modular application can enforce a healthy separation of concerns too and reduce the internal coupling between elements of the application. Other advantages of implementing modules could be: - different SDLC for each module. - modules evolve at different speed and time. - code reuse (e.g shared libs) - archetyping (look for maven archetypes for more information) If your application follows an hexagonal (micro) architecture, one more advantage is that the "adapters" can be implemented later and replaced anytime without having to change the core of the application, allowing you to abstract yourself from some implementation details and focus on the business of the module you are working on.