Is your feature request related to a problem? Please describe.
At the moment, the repository mainly demonstrates asynchronous communication patterns (e.g., event-driven integration between modules). However, in real-world systems, synchronous communication is also an inevitable part of architecture. Developers may struggle to understand how to design and implement public API communication between modules in a clean and maintainable way.
Describe the solution you’d like
I’d like to extend the repository with an example that demonstrates synchronous communication between modules within a Modular Monolith.
This example should show:
• How one module can expose a public API (via interface, application service, or HTTP endpoint)
• How another module can consume that API while maintaining low coupling and clear boundaries
• Good practices for encapsulation, dependency inversion, and explicit contracts between modules
Additional context
This feature will complement the existing examples by providing a complete view of communication patterns — both asynchronous and synchronous within a modular monolith.
It will also help illustrate when to use which type of communication and how to evolve towards microservices if needed later.
Is your feature request related to a problem? Please describe.
At the moment, the repository mainly demonstrates asynchronous communication patterns (e.g., event-driven integration between modules). However, in real-world systems, synchronous communication is also an inevitable part of architecture. Developers may struggle to understand how to design and implement public API communication between modules in a clean and maintainable way.
Describe the solution you’d like
I’d like to extend the repository with an example that demonstrates synchronous communication between modules within a Modular Monolith.
This example should show:
• How one module can expose a public API (via interface, application service, or HTTP endpoint)
• How another module can consume that API while maintaining low coupling and clear boundaries
• Good practices for encapsulation, dependency inversion, and explicit contracts between modules
Additional context
This feature will complement the existing examples by providing a complete view of communication patterns — both asynchronous and synchronous within a modular monolith.
It will also help illustrate when to use which type of communication and how to evolve towards microservices if needed later.