Designer

The Designer enables users to design rich workflow definitions with states and transitions. Besides the built-in activities, developers can develop custom activities with custom data types to add rich functionality related to the host application.

Workflows
  • Loop, condition, switch
  • Variables, arguments
  • Initialize, end, cancel, responses
  • State, transitions & assignments
Extend
  • Custom activities
  • Activity visual appearence
  • Custom data types
Activities

Activities are the building blocks of a workflow. The designer by default comes with all the standard activities to build any type of workflow such as state machine workflows. Moreover, custom activities can be developed with properties that enable them to receive inputs from other activities and with arguments to output data to other activities.

Global Variables & Arguments

Global variables and arguments are the vehicle by which activities can communicate with each other. They exist through the life-cycle of the workflow instance, and their values can be used and updated by activities.


BPM Engine

Overview

The BPM engine, is mainly responsible to execute workflow definitions by creating instances. These instances are managed by the instance manager, and they run within an isolated context. The notificaion manager publishes every step of the instance's life-cycle.

Restful web-API

De-coupled architecture and segregation of responsibility is at the core of BPM engine's architecture. The restful web-API is responsible for managing requests, responding to events, logging and notification.

Components
Versioning
The BPM engine, can run instances with different version of workflow definitions. When a new version is uploaded, the current instances will continue running with the old version, and new instances will start with the new version.


Actions

The web-API actions include:

  • Workflow definition managment actions
  • Initialize, Resume, Cancel and Re-assign instances
  • Instance detail calls that return complete instance information like current state, transitions & assignments
  • Hostorical information related calls


Instance manager

The instance manager is responsible for:

  • Instance execution in isolated contexts.
  • Listening to all the events of an instance's life-cycle.
  • Handling Faults that occur wthin instances.
  • Load and Un-load instances between memory and database.


Secure requests

inFloworx BPM engine has a security layer is baked into it by default. Developers can extend the security layer to integrate the engine with the host application.

All the requests made to the BPM engine pass through the external and the internal security layer. Requests always include a user id performing the request and a JWT token if needed.

The user id and the token can be verified by the host application's security module which is called by the BPM engine as the request is progressing.

The internal security layer is responsible to verify if the user id has permission to perform the request.



Push notifications

Instance life-cycle events are pushed to all the subscribed clients. Developers can implement these subscriptions in the host application's back-end and front-end to react to changes in instances' events.

Instance life-cycle events:

  • Initialized
  • In Progress
  • Ideled
  • Faulted
  • Resumed
  • Cancelled
  • Closed


Database

Every piece of information about the workflow and instances is saved in a relational database. Moreover, idle instances are serializaed to database.

  • Workflow definitions & versions
  • Running instances
  • States, transitions & assignments
  • instance execution history
  • Activity libraries
  • Data type libraries


Manager

Overview

The manager is a web application that leverages the BPM engine's actions to give users an interface to interact with the BPM engine. Users can use this app to upload and manage, workflow definitions, custom activity libraries and data types. Also, this application enables interaction with live instances.

Workflow definitions

The manager enables users to upload workfow definition files created by the designer to the BPM engine. Once uploaded, the manager provides a visualization of the workflow's states, transitions and assignments. Also, through the manager, a user can attach a sub-workflow to a state of a parent workflow.

Mappings

Mappings are a way to attach a meaningful name to a workflow that will be used by the host application. Hence, the mapping name will be used by the host application to execute and instance from a workflow definition.

Instances

The manager allows complete access to workflow instances. Users can search and view instances with all the details, and are able to execute all the instance actions allowed by the engine.

Custom activities

When developers create a library of custom activities, the compiled assembly can be deployed to the BPM engine through the manager. This application allows full management of custom activity libraries

Custom data types

When developers create a library of custom data types, the compiled assembly can be deployed to the BPM engine through the manager. This application allows full management of custom data type libraries