In the following conditions, you may consider to build a modular software solution:
If your domain is too complex to develop and maintain in a single monolith codebase.
If your business domain has clear functional boundaries and is possible to split into sub-domains.
If you have multiple teams that will work on the solution.
When you need to reduce complexity early on. And if you are considering migrating your application to a microservice system.
ABP provides a great infrastructure and tooling to build modular software solutions. In the tutorial, you will learn how to create application modules, compose and communicate them to build a monolith modular web application.
Document LinkA modular monolith application consists of a single host application and multiple sub-modules. Typically, each module has its own .NET solution that contains the code related to that module. So, the general structure is shown in the following figure:
In this example, MyCrm.Host is an almost-empty host application that has package references to other modules. Every module consists of two packages: implementation and contract packages.
You can follow the steps below to create such a modular solution with ABP Studio:
So, both single-layer and layered startup templates are inherently modular. Just use one of them and start your modular solution. You may wonder which one to start:
Discover how modular monolith architecture combines the best of both worlds: the simplicity of monolithic deployment with the organizational power of modular design. This in-depth guide will show you how to build applications that multiple teams can develop simultaneously, scale efficiently, and maintain effortlessly—all while avoiding the operational nightmare of microservices.