Background: different developers are building an e-commerce system using Spring. Some are working on the user facing arm, others are working on the CMS, while the other group are working on the vendor bit.
My first thought was to combine all three into a modular monolith, since I imagine the 3 of them will have cross-cutting concerns. This is proven correct through the authentication system and mongo models, but not much else. The trio grow into full-fledged projects, with eventual slight demand on the vendor for content on the CMS. So, they are splitted into 4 different projects (with the general dependencies being imported in the other 3)
This incident was brought to my notice – there may have been other similar situations on the vendor project that required data from the CMS, but for the purpose of clarity, let's assume it was just a few (2) business classes. Is consuming this 2 enough reason to make http calls, or is it satisfactory to import the CMS module (just like general dependencies) and call them directly?
My understanding is "same language, first party API, import and invoke"
I'm also tempted to think that the interdependencies is an indication that the projects shouldn't have been splitted, but I imagine I may be penalised for merging two questions in one