Skip to main content

BankLingo Process Engine

The BankLingo Process Engine is a powerful, BPMN 2.0-compliant workflow automation system designed specifically for banking and financial services applications. It enables you to design, deploy, and execute complex business processes with full control over execution flow, user interactions, and system integrations.

What is the Process Engine?

The BankLingo Process Engine is a state machine that orchestrates business processes defined in BPMN (Business Process Model and Notation) XML format. It manages:

  • Workflow Execution: Automated execution of business processes
  • User Task Management: Human interactions and approvals
  • System Integration: Service calls and external system communication
  • Business Rules: Decision logic and conditional routing
  • Process State: Complete audit trail and execution history
  • Error Handling: Retry logic and compensation flows

Key Features

🎯 BPMN 2.0 Compliant

Full support for standard BPMN elements including:

  • Tasks (User, Service, Script, Send, Receive, Business Rule, Call Activity)
  • Gateways (Exclusive, Parallel, Inclusive)
  • Events (Start, End, Timer, Message, Signal)
  • Sequence Flows with conditions

🔄 Dual Execution Modes

  • Unsupervised Mode: Fully automated execution from start to finish
  • Supervised Mode: Step-by-step execution with manual control (step forward/backward)

🧩 Rich Task Types

Support for 8 different task types, each with specialized capabilities:

  • UserTask: Human interactions with forms and actions
  • ServiceTask: HTTP/REST API calls with retry logic
  • ScriptTask: Execute JavaScript/Node.js code inline
  • SendTask: Send messages to queues, topics, or HTTP endpoints
  • BusinessRuleTask: Execute business rules and decision tables
  • ReceiveTask: Wait for external messages or signals
  • CallActivity: Invoke sub-processes with data mapping
  • Gateway: Dynamic routing with script-based conditions

📊 Process Variables

  • Full variable context throughout process execution
  • Input/Output mapping for all tasks
  • Formula evaluation using BankLingo command engine
  • Support for complex objects and JSON data

🔐 Security & Permissions

  • Role-based access control
  • Responsible users and teams assignment
  • Entity state management
  • Audit logging for all operations

🔌 Extensibility

  • Custom task properties via BPMN extension elements
  • Integration with BankLingo command engine
  • Support for custom scripts and formulas
  • Pluggable service connectors

Architecture

┌─────────────────────────────────────────────────────────────┐
│ BankLingo API Layer │
│ (REST API for process creation, execution, management) │
└───────────────────────────┬─────────────────────────────────┘

┌───────────────────────────▼─────────────────────────────────┐
│ BankLingo Process Engine │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ BPMN Parser │ │ Execution │ │ State Manager │ │
│ │ │ │ Engine │ │ │ │
│ └─────────────┘ └──────────────┘ └───────────────┘ │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ Task │ │ Gateway │ │ Variable │ │
│ │ Executors │ │ Evaluator │ │ Manager │ │
│ └─────────────┘ └──────────────┘ └───────────────┘ │
└───────────────────────────┬─────────────────────────────────┘

┌───────────────────────────▼─────────────────────────────────┐
│ BankLingo Command Engine │
│ (Formula evaluation, business logic, data access) │
└───────────────────────────┬─────────────────────────────────┘

┌───────────────────────────▼─────────────────────────────────┐
│ Database Layer │
│ (Process definitions, instances, state, history) │
└─────────────────────────────────────────────────────────────┘

Use Cases

Loan Application Processing

Automate the entire loan lifecycle from application submission through credit checks, approvals, disbursement, and closing.

Customer Onboarding

Orchestrate multi-step customer registration with KYC verification, document collection, account creation, and approval workflows.

Payment Authorization

Implement complex payment approval workflows with risk assessment, multi-level approvals, and fraud detection.

Account Management

Automate account opening, closing, freezing, and modification processes with appropriate approvals.

Compliance & Reporting

Manage regulatory reporting workflows, audit trails, and compliance checks.

Getting Started

Ready to build your first process? Check out our guides:

  1. Getting Started - Create your first BPMN process
  2. Task Types - Learn about all available task types
  3. Execution Modes - Understand supervised vs unsupervised execution
  4. API Reference - Complete API documentation
  5. Examples - Real-world process examples

Quick Example

Here's a simple approval process:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:custom="http://banklingo.com/schema/bpmn">
<bpmn:process id="SimpleApproval" name="Simple Approval Process" isExecutable="true">

<!-- Start Event -->
<bpmn:startEvent id="Start" />
<bpmn:sequenceFlow sourceRef="Start" targetRef="Task_Review" />

<!-- User Task: Review Request -->
<bpmn:userTask id="Task_Review" name="Review Request">
<bpmn:extensionElements>
<custom:properties>
<custom:property name="FormKey" value="approval-form" />
<custom:property name="UserActions" value="Approve,Reject" />
</custom:properties>
</bpmn:extensionElements>
</bpmn:userTask>
<bpmn:sequenceFlow sourceRef="Task_Review" targetRef="Gateway_Decision" />

<!-- Gateway: Check Decision -->
<bpmn:exclusiveGateway id="Gateway_Decision">
<bpmn:extensionElements>
<custom:properties>
<custom:property name="Condition" value="return userAction === 'Approve' ? 'Flow_Approved' : 'Flow_Rejected';" />
</custom:properties>
</bpmn:extensionElements>
</bpmn:exclusiveGateway>

<bpmn:sequenceFlow id="Flow_Approved" name="Approved"
sourceRef="Gateway_Decision" targetRef="Task_Notify_Approval" />
<bpmn:sequenceFlow id="Flow_Rejected" name="Rejected"
sourceRef="Gateway_Decision" targetRef="Task_Notify_Rejection" />

<!-- Notify Approval -->
<bpmn:sendTask id="Task_Notify_Approval" name="Send Approval Notification">
<bpmn:extensionElements>
<custom:properties>
<custom:property name="Destination" value="/api/notifications" />
<custom:property name="Method" value="POST" />
</custom:properties>
</bpmn:extensionElements>
</bpmn:sendTask>
<bpmn:sequenceFlow sourceRef="Task_Notify_Approval" targetRef="End_Approved" />

<!-- Notify Rejection -->
<bpmn:sendTask id="Task_Notify_Rejection" name="Send Rejection Notification">
<bpmn:extensionElements>
<custom:properties>
<custom:property name="Destination" value="/api/notifications" />
<custom:property name="Method" value="POST" />
</custom:properties>
</bpmn:extensionElements>
</bpmn:sendTask>
<bpmn:sequenceFlow sourceRef="Task_Notify_Rejection" targetRef="End_Rejected" />

<!-- End Events -->
<bpmn:endEvent id="End_Approved" />
<bpmn:endEvent id="End_Rejected" />
</bpmn:process>
</bpmn:definitions>

System Requirements

  • .NET 6.0 or higher: The process engine runs on .NET
  • SQL Server/PostgreSQL: For storing process definitions and state
  • BankLingo Platform: Core banking platform installation

Next Steps


Need Help? Check out our FAQ or contact the BankLingo support team.