We have a large reporting webapp, which has a part subsystem that does request tracking and routing. Since Activiti is spring absed liek our app, so we closed on activiti as our workflow and routing engine. However we intend to use activiti as a service layer integration pattern instead of direct UI based one.
I know we can create spring based services and use activiti's spring integration beans and services to work together. What i have queris about is data sharing. e.g: in our business flow when a new user is created, it goes through a 3 step user base manual approval process before the newly created user reflects in our active user database. How should i integrate this in activiti's tasks. I can see that soem data sharing woudl happen using the form properties, e.g: our activiti task can have a form property like firstLevelApproval whose value we can populate manually in service from User data object. The user data obejct will reside in our DB and not in Activiti's DB. How do i keep the state in synch between the variables in the task and in our application object. Since if i employ business logic in activit's service tasks then the mutations they do on the obejct's properties needs to be persisted back into DB. how to I go about that? Should i keep mutation logic outside activiti?
Please provide some patterns or integration ideas.