Clustering any application is a critical part for handling the workload and failover scenarios. The Workflow Engine can be clustered in your deployment to overcome the failover scenario and to manage the workload. This can be achieved by running multiple instances of the Workflow Engine at the same time. Each instance is assigned a unique Engine ID whenever a new instance is initiated in the cluster. The Workflow Engine maintains a list of unique IDs and the status of all the clustered instances in the workflow database.
The workflow processes are distributed across all the instances of Workflow Engine to ensure that all instances have roughly the same workload. If one instance fails, all workflow processes running on that engine is automatically re-assigned to a different instance running on the same cluster. Depending on workload, a fresh Workflow Engine instance may also initiate (with a unique Engine ID) and all workflow processes from the failed instance will be re-assigned to the new instance. All these operations happen in the background seamlessly. This ensures that the Workflow Engines are highly available and do not have any downtime, in case of a failure.