The following are the basic principles for splitting an application into smaller applications (modularizing):
The functionality of each small application should be independent from the others. Each application to be deployed should be able to execute an independent and practical task. Following this principle, it is better to integrate closely related functional points in a small application and remove the loose object references. For example, to split a purchase order application into smaller parts, the order management logic (module) can be placed in a small application and the relevant supplier information management logic in another small application.
On the basis of the first principle, try to balance the complex objects evenly across all the small applications.
The applications should be as small as possible.