AnsweredAssumed Answered

Distributed Workflow Execution

Question asked by lichtin on Aug 5, 2011
Latest reply on Aug 19, 2011 by ronald.van.kuijk
I'm thinking about how workflows can be executed in a distributed system where multiple engines will be running.
A message that starts or resumes a workflow process can arrive anywhere in the system.

So for example when a message M2 arrives, the nearest engine E2 cannot just retrieve the workflow process state
from its DB tables and continue, as another engine E1 might currently be executing the flow that was started earlier
by message M1. Some coordination seems necessary.

One approach could be to transfer the state. As soon as engine E1 determines a wait state, the updated process state
would be transferred to the DB tables of engine E2 and E2 signalled to handle message M2. But then messages would
be serialized and could not serve as interrupting events (if such a thing is actually supported).

Alternatively, each workflow process instance could be assigned an engine and messages would always be rerouted
to this engine.

Anyway, just started thinking about it.

What I'm interested in is, has someone had to handle a similar situation?