Hi Lenny,
In theory you can model your whole app in a single module. Though I would not advise that for multiple reasons
- Maintainability
When you would add all in a single module your domain model explodes and insight in usage and purpose is quickly lost. By splitting it in separated modules you get modularity in your model.
- Modularity
This modularity should reflect the main functions in the app; i.e. Schedule of courses; maintaining the masterdata of your courses; account management; sending an email; etc…
- Reusability
proper modularity leads to reusability of functions across multiple application. For example the marketplace has a lot of modules for a specific function you can use out of the box. But this isn’t limited to the marketplace. You can develop your own module for a specific function which can be shared internally across the company.
When a module has a specific function, you can also set specific access
- Security
This specific access leads to better security. As you can grant certain roles access to the module by assigning a module role. opposite is true as well; not assigning a module role to a user role > no access to the whole module = no access to the function.
Above is a quick overview of the main reasons. these reasons have a lot more to it. but worth more than a forum answer.