Clustering In FlowWright Workflow Automation

Learn about clustering to improve thoughput and fault tolerance

Last published at: April 19th, 2024

What is Clustering?  Clustering is the addition of multiple servers to improve processing throughput and fault tolerance.  Clustering is common practice in hosted solutions where adding more servers can alleviate hardware limitations that are causing processing bottlenecks. Often, the only way to increase business process automation performance is to configure and use additional servers to process workflows.  

FlowWright was architected from the start with distributed processing in mind.  Old versions of FlowWright used the Active-Passive concept, but today customers take advantage of FlowWright's Active-Active configuration for distributed processing. The reason for this newer preference is simply to eliminate any delay in processing in the event the primary server(s) are overloaded or unavailable.

FlowWright uses modern algorithms to support distributed file systems and distributed file synchronization services.

Cloud-based environments, such as Microsoft Azure typically provide solutions for scaling infrastructure.  One way to do this is to increase computing resources on the application server's virtual machine configuration settings.  MS Azure can be also configured with multiple application server virtual machines for processing - and the infrastructure provides a scale set to perform scaling automatically when the processing load increases.  Azure also makes scaling easier by providing serverless computing, where a VM is not required and the application is hosted and executed virtually with processing being handled using Azure functions and queues.

Clustering is often used for managing fail-over processing, With FlowWright being an Active-Active configured solution, fail-over is automatically built into the product. Azure infrastructure has its fail-over configuration using Azure Front Door software, where Azure can direct traffic from one region to another or even to another data center. FlowWright can be configured to make full use of what Microsoft Azure has to offer in terms of fault tolerance and disaster recovery.

In high-volume environments, using multiple servers for processing may be desirable. This choice depends on factors such as the number of workflows being processed, what each workflow does, and what speed and performance may be required.

Even a server with 8 GB RAM, and 2 CPUs can process 50k workflows in a day. FlowWright is built for performance and resource consumption management. FlowWright engines are optimized to launch child processes that come to life, perform work, and die off.  All resources utilized by a child process are fully returned to the Operating system when it retires.

Testing done by customers and third parties has found our engine algorithms to be superior compared to other major enterprise BPM/workflow solutions - both concerning throughput and reliability/resiliency.