cancel
Showing results for 
Search instead for 
Did you mean: 

Process failover in a cluster

zlalani
Champ in-the-making
Champ in-the-making
Hi

just joined recently, so please excuse me if this is a repeat - I have searched the forums for relevant information, but still don't have all the information I need.

We are prototyping a BPM requirement using Activiti. The server is setup as a standalone system on tomcat, and we have a service wrapper that we use to provide an enhanced API to the system. We are very impressed with it so far, and its looking good in terms of a choice.

However, I am now trying to determine the clustering capabilities of the system. What I have understood so far is that we can easily connect multiple engines to a common database, and the job executors will correctly work to pick up work from the queues.

Where I am not clear is in the following: We have an API to start a process on an engine. This will come from a load balancer, and so the calling applications request may hit any of the engines. So the first call may hit engineB which will launch the process on serverB. The next call from the LB will hit engineA on serverA. Say that the process on engineB is sitting on a human interaction task. Before the human interaction occurs, serverB goes down. When the interaction occurs, the LB will direct the request to serverA - will this correctly continue the process?

Hope that makes sense?

Thx

Z
2 REPLIES 2

pmsevestre
Champ in-the-making
Champ in-the-making
Hi,

I'm also new to Activiti but, from what I could see from the code and DB access patterns, an engine instance does not keep any state information about particular instances. This means that if an instance goes down, another one should be able to handle a task completion without any problem, since all relevant state is in the shared DB.

trademak
Star Contributor
Star Contributor
That's right what pmsevestre said. So if you add a load balancer for a number of Activiti instances you automatically get fail over.

Best regards,