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:
- Getting Started - Create your first BPMN process
- Task Types - Learn about all available task types
- Execution Modes - Understand supervised vs unsupervised execution
- API Reference - Complete API documentation
- 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
- 📘 Read the Getting Started Guide
- 🔍 Explore Task Types
- 💡 See Complete Examples
- 📖 Browse the API Reference
Need Help? Check out our FAQ or contact the BankLingo support team.