User and Group membership/roles within many companies are part of the overall Identity Management (IDM) Authentication/Authorization solution. Security, Legal, etc is involved in determining the overall solution. Once this is established there are many applications that become dependent on the table structure etc. It is not feasible to simply point to another set of tables, especially with such a simple definition of User and Group.
It is also generally the case that users and roles are bound to specific usage, and because of this must be kept separate (example: A companies external customers versus internal employees or, like my SaaS example, imagine you have organization A, organization B and organization C paying for your SaaS service. Each Organization has it's set of users and roles that must be kept separate. Intermixing is not acceptable in this situation and would only lead to confusion.)
I am asking if Activiti has thought through these valid scenarios. The cleanest?? fix would be to add a unique service identifier on their tables where service uniqueness needs to be guaranteed. At least, tho not optimum, I could write a simple app that would take data from our internal dB structure and use it to fill Activiti's tables. Another solution would be to provide a configuration that let's us override the Implementations of classes that need to have knowledge of a service ID (classes identified by Activiti). In this case Activit could provide us example ServiceImpl's that could be used as a template to ensure compatibility.
As an architect I realize we now live in a world where the way applications are crafted can no longer assume dedicated environments, especially as more and more companies are entering the Cloud and SaaS model. My personal belief (my belief and a US $dollar will by you a can of Pepsi) is that we need to ensure projects like this support the SaaS model first, because it does not, in any way, impair a single application approach from using the solution. Simple case, they have to inject a serviceID, which is simple and can be solved once via configuration. Focusing the other way unnecessarily limits where a solution like this can be used.
My company is entering the SaaS model next year and has need for a workflow solution. I am investigating our options now in hopes that we do not need to roll our own