1. Home
  2. FlexRule Server
  3. Introduction
  4. How does FlexRule Server work?

How does FlexRule Server work?

◷ Reading Time: 3 minutes

FlexRule Server will setup a platform for managing business logic (i.e., rules, decisions, flow, etc.). It exposes this logic as a REST API for execution. It also provides the capability to manage and monitor different parts of its infrastructure as well as your business logic.

FlexRule Server has four key components that are independently configurable along with a central database, offering flexibility for the final environment solution. These components include:

  1. Master Management
  2. Master Execution
  3. Master Workbench
  4. Execution Agents

Each of the components are responsible for different tasks.

Diagram of FlexRule server showing a basic configuration of the 3 masters (Management, Execution, Workbench), database and multiple agents.

Server Components

Master Management

Is responsible for administration including Packages and Services, Users, Accounts and Permissions. Along with authentication (OAuth – password flow and RBAC permission control), license administration, Scheduling and Job distribution & management.

Master Execution

Facilitates the execution of Services by the Execution Agents. When requests come to Master Execution it selects a free and healthy Agent and sends the execution request to the Agent. Once the Agent executes the logic, it returns the result back to Master Execution and that then sends the result to the requester.

Master Workbench

Is essentially a web server for the Workbench application which is an out of the box interface to the FlexRule Server. The Workbench application talks to both Master Management and Master Execution allowing all aspects of Server to be administered.

Execution Agents

Are responsible for executing Services and Job requests. Using FlexRule Runtime to load and execute, the Agents run logic models from provided request values and return the results. Services requests are sent to the Agents via Master Execution, Job instance requests are sent via Master Management.

Deployment of FlexRule Server

With the componentized nature of the Server product there is literally endless options for configuration, with the final solution driven by the specific requirements from the Server product and architectural needs of the customer.

Any one of the components can have multiple instances allowing easy scalability or redundancy to be set in the final environment. For example, one instance of Masters Management and Workbench can be coupled with multiple instances of Master Execution speaking to a pool of many Agents.

These can be installed on one machine, but ideally you will distribute them across your network on different machines for scaling the execution process. Deploying multiple Nodes and putting them behind a load balancer that routes requests based on load. If a Master Node (Execution or Management) is down, then your load balancer can route the request to another available Master Node. Master Nodes have access to the same pool of Agents.

This strategy requires sharing the database between Master Nodes. To set up a database shared across all the Master Nodes, you need to use the MS-SQL database provider.

Server execution configuration

Further to the deployment of multiple nodes, FlexRule Server offers ability to configure the Execution Agents to be compatible with specific Jobs or Services. Allowing certain agents to be dedicated to execute those Jobs or Services and other Agents reserved for other Execution tasks.

The high level of configurability allows customers to fine tune their environment to seamlessly handle their specific requirements. Combined with the intuitive Workbench interface it is easy to manage the implemented environment, quickly configuring Agents and Administering Jobs and Services.

Updated on October 31, 2023

Was this article helpful?

Related Articles