Load Balancer

It is important to consider the use of a load balancer to spread clients evenly across multiple BPM nodes, whether they are running on the same physical machine or spread across multiple machines.

One such load balancer is the Membrane load balancer (http://www.membrane-soa.org/service-proxy-doc/4.4/soap-loadbalancing.htm).  Using the username passed in the SOAP request for sticky sessions means that regardless of how the clients are configured, they all have the same Membrane load balancer URL.

If a load balancer is used, there might be performance implications, depending on where it is located, the network being used, and the load on the machine hosting the balancer (assuming a software solution).

The use of a load balancer also needs to be tested to ensure that it behaves correctly if one or more of the BPM nodes are unavailable. Ensure that the load balancer correctly detects that a node is unavailable and pushes client requests to other available nodes.

Using a Load Balancer and Sticky Sessions with Pageflows

Pageflows are in-memory processes. When a pageflow is started, the state of the pageflow instance is cached, in memory, on the node where the pageflow is being executed. Subsequent calls to the pageflow must be routed through the same node for successful execution of the pageflow. Therefore, if you are operating in a distributed BPM system, you must use sticky sessions on a load balancer to ensure that all subsequent calls to a pageflow are routed to the same node.

For additional information, see "Pageflows" in TIBCO ActiveMatrix BPM Concepts.