Hi Guvnor/JBPM Team,
I have a design/architecture related question. We have an Enterprise application that defines a service that uses jBPM for process flow and rules. This service talks to legacy DB and jBPM db. When we want to add more functionality to this service, we need to add more legacy DB connections and respective DAOs. For brevity, I'm using only one service here in the example - actually it consists of many services and one core jBPM service.
We are in process of overhauling this enterprise service so that we remove the tight coupling of the services with both jBPM and legacy DBs. There are two approaches- we can either factor out the legacy DB part from jBPM services but at some point the service needs to be aware of the DB model for the rules so I'm not sure if this is totally possible.
The other option is to use Guvnor and store all process and rules definitions in Guvnor and use the runtime agent API to load the processes in the service to execute jBPM tasks and this service can hand the task to the other service to update the legacy DB structures. The problem I see with this approach is I will still have to maintain the data model in "two places" - one for Guvnor as rules are tightly coupled with the model (which is stripped of JPA annotations) and the other datamodel will reside in the enteprise data services.
Based on the above do you have any recommendation? Is the use of Guvnor recommended for the above approach. Are there any projects/open source that you can point me that adopted Guvnor and loading the process using the runtime agent API so I can dive into the source code and get better idea.
Your suggestions are very welcome.
Thank you for your time!
I was reading up on having Enterprise Data Services, along with ESB and jBPM as a more SOA driven solution.