I’ve got a fairly large and complex domain model and the suggestion was made to break it up into multiple modules. However, I’m seeing a few limitations:
It seems that Mx doesn’t allow any kind of cascade deletes.
As a matter of practice, I don’t allow deletes in complex models (I use status attributes for a soft delete).
Changes to Entity Module
Once you’ve defined an entity within a module, you can’t move it. In one instance, I had a few entities that I thought were fairly simple. But as the collective set of entities grew, I wanted to isolate them in a separate module...nope.
Other than importing third-party modules, is it really a good practice to separate the domain model into multiple modules?
Are there known plans to support standard ERD modeling tools, such as multiple diagrams for the same domain model?
I must disagree with the statements you make in your question.
You state cascaded deletes are possible.
Read section 2.5 of the page below to understand 1 standard way of implementing cascaded deletes via associations either in 1 domain model or in multiple domain models.
In addition cascaded deletes can be created by means of microflow actions if more control is needed than offered by the standard capabilities.
Then you state you can’t move an entity once created in a module’s domain model. This is also incorrect. If you right click on an entity you get the option move in the context menu. Using this you can move the entity to another module, while keeping the associations in tact. Searching for this on this very forum would have yielded the following post as result: https://forum.mendixcloud.com/link/questions/86545
As your assumptions are wrong the question rises if your question is still valid.
However splitting up a domain model into several parts is a good idea in general when a domain model becomes very large. Splitting the model in several parts will allow for more clarity of the models, allow for working as a team more easily (less conflicts when committing). In addition the splits will allow for setting up specific security for a model and allow for easy reuse of a model as these can be exported as a whole model and imported in another app.
The question is when to split a domain model?
The answer is as always: it depends.
It depends on your needs of reuse, clarity, security, cooperation, etc. So there is no one answer, but the important thing is that working with multiple domain models is possible and well supported by Mendix apps.
About the right click see the picture: