Hello Everyone, I think If you look at both the "data model" and "services" in OFBiz you will notice the following:
- They are highly coupled and everything is connected to everything (orders, parties, work efforts, contents, etc ...) - They are independent of the user interface. In fact you can make multiple interfaces that share the same data model and services. - Some services and entity models are component-specific and do not belong to the generic data models and services. So what does that mean? It means in order to achieve real flexibility and a clean architecture, perhaps we need to separate our data model and services from the rest of the components in the system, and we already did this with the datamodel component. So I propose creating a new component, perhaps calling it "service-library" that houses all "generic" services that operate on the "generic" data model. I propose we implement this new component as follows: - Slowly move services (one at a time) from components to this central library, cleaning and refactoring as we move. - Migrate any minilang services to another engine while moving (groovy, entityauto, etc ...) - Keep any services that are component-specific and do not operate on the generic data model in the component What do you think? Do you agree with the general idea? Can we do this in a better way? Anyone interested in helping out? Cheers, Taher Alkhateeb