About Clustering
  • 25 Oct 2023
  • 1 Minute to read
  • Dark

About Clustering

  • Dark

Article Summary

Clustering in development environments is not supported.


A Cluster is an environment of one or more Application Server instances on the same database backend. The servers work together to appropriately distribute workloads to prevent over or underutilization of any particular server.

This allows for an overall increase in availability and provides the ability to share a single storage location.

To further improve an environment's resilience, it is recommended to use a clustered SQL server environment to prevent database failures from interrupting service.

High Availability

High Availability configurations aim to remove any single points of failure in a process by creating a cluster of at least two Application Servers and a Load Balancer.

With the Application Servers configured for redundancy i.e. identically, it is recommended that users may construct an active-active cluster to boost processing power by dedicating more computing power to the system. It is recommended that the active-active cluster contains geographic separation.

Active-passive clusters are not recommended for most general purposes.

Transaction Data and Peer Communication

When a Flow or a Rule stores data, it is immediately written so it is not at risk during an outage. However, uncommitted i.e. in-progress Flow/Rule data, may be lost. 

In the event of an outage, Flows with states can resume from their last recorded state before service interruption. Short workflows pose little risk of loss since they complete in milliseconds.

Yet, for critical Flows or Rules, any chance of interruption is unacceptable. To solve this, combining leased work with work queues establishes reliable Flow/Rule executions and retry attempts.

Failover servers further reduce outage disruption in their clustered environments by running any subsequent executions instead of the down server(s).

Clustered servers communicate with one another to clear cached data, when data changes, and when it should reload from the system's record to maintain efficiency.

It is also possible to rely on messaging using Rabbit, Kafka, Azure SB, AWS, and other services that may fit a customer's architecture.

Multi-Tenant and Clusters

Multi-Tenant environments allow Administrators to assign a Tenant Instance to one or more servers in a cluster without assigning the Tenant to all Nodes. This configuration is uncommon and will require additional configuration on the Load Balancer.

Users can use one of the caching types to temporarily store data. In a cluster, the Memory Cache Definition type will remain specific to the node it was created on. For cross-node caching, users should use a persistent Cache Definition type.

For further information on Installation, visit the Decisions Forum.

Was this article helpful?