As your product and team grow, you might reach a point where scaling a monolithic application is challenging due to different functionalities being tightly coupled in the same codebase with no boundaries.
Microservices architecture made waves to solve such problems, however, it would bring its own sets of challenges.
A modular monolith can solve those problems without the drawbacks of microservices. A modular monolith is a system where all the functionalities reside in a single codebase, but strictly enforced boundaries exist between different domains.
This talk explains how to modularize an Inertia Laravel application, where each module contains the end-to-end code (backend and frontend) for a specific business domain. It also touches on a useful package that makes managing modules easier.