Do you have a module overview document for your Modular Monolith?
A common pain in large modular monoliths (MoMo's) is new devs trying to work out what each module does, leading to confusion, slow onboarding and sometimes even accidentally duplicated code. Without an understanding of the module structure, teams waste time discovering module responsibilities.
"A well-maintained module overview is the map that keeps your monolith navigable as it grows."
Why you need a module overview document
- Faster onboarding: New developers can quickly understand the system's structure and purpose of each module
- Reduced duplication: Teams avoid building the same functionality twice by knowing what's already there
- Reduced Tech Debt Avoid things going in the wrong module and creating tech debt
- Better communication: A shared reference for discussions about architecture and future changes
What does a good module overview look like?
A good overview document (e.g., MODULES.md
or docs/modules-overview.md
) should:
- List every module, its purpose, and key dependencies
- Be updated whenever modules are added, removed, or changed
- Be easy to find at the root or in the documentation folder
- Use a table to clearly show module names, types, and links to their documentation
Some modular monolith solutions have two types of modules:
- Web API modules (external, exposed to the internet via rest APIs)
- Service modules (internal, available via CQRS Mediatr queries and commands)
Example - Northwind 365 Module Overview
Northwind 365 is a Modular Monolith Application.
Each Module is either a Service or Web Module.
Read more about Modules
Modules
Module Name | Type | Link to Module README |
---|---|---|
IdentityAccess | Web API | IdentityAccess Module README |
AuditTrail | Web API | AuditTrail Module README |
TaskRunner | Service | TaskRunner Module README |
IntegrationBridge | Service | IntegrationBridge Module README |
Clients | Web API | Clients Module README |
DataSync | Service | DataSync Module README |
Deployments | Web API | Deployments Module README |
Diagnostics | Web API | Diagnostics Module README |
Docs | Service | Docs Module README |
Notifications | Service | Notifications Module README |
Storage | Service | Storage Module README |
Reviews | Web API | Reviews Module README |
HealthStatus | Service | HealthStatus Module README |
ReferenceData | Service | ReferenceData Module README |
Surveys | Web API | Surveys Module README |
LiveUpdates | Web API | LiveUpdates Module README |
BusinessProcesses | Web API | BusinessProcesses Module README |
Tip: Keep the overview up to date as your application evolves. Assign responsibility for maintaining it.