[Open Source] A general-purpose workflow orchestration component for service orchestration, workflows, and task approval scenarios
![[Open Source] A general-purpose workflow orchestration component for service orchestration, workflows, and task approval scenarios](https://yy123.ink/api/img/1782599273953-03rthr.jpg)
1. Project Overview
JDEasyFlow
JDEasyFlow is a general-purpose workflow orchestration component suitable for service orchestration, workflows, task approvals, and other scenarios. It is simple, flexible, and easy to extend. Developers can get started in 30 minutes and understand its underlying principles within half a day.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots
Supported Scenarios and Features
Node Transition Types
Supports sequential transitions, conditional transitions, loop transitions, and more.

Node Function Types
Supports script nodes, user nodes, and message nodes.

- Script Node:
Executes a code script when the node runs - User Node:
Triggers node execution based on user operation instructions - Message Node:
Triggers node execution upon receiving a message
Node Execution Modes
Supports sequential execution, parallel execution, and combined sequential and parallel execution.

Workflow Interaction Scenarios
Supports multiple interaction patterns, including executing multiple nodes in a single interaction, executing one node per interaction across multiple interactions, and executing multiple nodes per interaction across multiple interactions.

Subprocess Scenarios
JDEasyFlow supports subprocess workflows, allowing complex workflow nodes to be broken down into smaller subprocesses for easier business logic abstraction.

Approval Workflow Scenarios
JDEasyFlow provides workflow task approval capabilities, supporting common operations such as approval, cancellation, rejection, countersignature, and additional approvers. It also includes a basic dynamic form. Workflow tasks can be initiated and managed through either the user interface or APIs. Integration with the JD OA approval system is also supported.

4. Feature Overview
JDEasyFlow is a general-purpose workflow orchestration component independently developed by the Enterprise Finance R&D Department. It is suitable for service orchestration, workflows, approval processes, and other scenarios. It is currently widely used in the department's internal business systems and technology delivery systems, and is also used by other departments.
Its key characteristics are simplicity, flexibility, and extensibility. Developers can generally get started within 30 minutes and understand its underlying principles in half a day. It consists of one core module and several extension modules. The modules are loosely coupled, allowing developers to select what they need, integrate quickly, and adopt features incrementally. It supports both its built-in JSON specification and the BPMN standard. Its implementation principles also have some distinctive features, which are introduced later.
Key Features of JDEasyFlowSimplicity:
-
Simple Model: The core model revolves around node transitions. -
Simple Extensions: Provides listener and filter features for convenient cross-cutting concerns. Nodes also support custom implementations. -
Simple Definition: Node transition logic can be configured using JSON alone. BPMN format is also supported. -
Simple Execution: Call the workflow engine from your code and pass in the workflow ID and business parameters. -
Easy to Use: Simply import the component package to get started. It is lightweight.

Applicable Scenarios and Integration Guide
Applicable scenarios
In theory, JDEasyFlow can accommodate any workflow scenario. It primarily addresses three types of problems:
- Configurable Workflows:
Abstract business processes into software workflows to ensure that software accurately reflects real-world processes. Different workflows can be defined for different scenarios, and workflows are easy to modify. - Loosely Coupled Functions:
Abstract business nodes into software workflow nodes. This not only achieves loose coupling between functions but also enables node reuse. - Workflow Visualization:
What you see is what you get. It facilitates communication between business product managers and software developers using a common language and also makes workflow monitoring easier.
During actual software system development, consider using workflow orchestration if you have any of the following requirements:
-
Business processes consist of multiple clearly defined nodes. -
You want workflows to be flexible and easy to modify. -
Business processes operate at a higher level than program execution flows and are difficult to consolidate and manage at the programming language level. For example, a workflow may require frontend operations, external system participation, and backend operations, resulting in scattered entry points during implementation.
5. Tech Stack
Overall Functional Architecture
The functional architecture of JDEasyFlow is shown below. Its functional modules are loosely coupled, allowing developers to select what they need, integrate quickly, and adopt features incrementally.。The simplest way to use it is to import the JAR package into the business application and use the workflow engine directly. If workflow visualization is required, the BPMN specification module can be integrated. If additional features such as workflow instance persistence and workflow definition persistence are needed, other relevant modules can also be integrated.

Overall System Architecture
The complete JDEasyFlow system architecture is shown below. It mainly consists of three components: the business application, workflow service, and workflow management. These three components can be deployed together in a monolithic application or deployed separately.

Software Architecture
At its core, JDEasyFlow provides a workflow engine/state machine module (choose either one when using it; the workflow engine is recommended). This module provides workflow orchestration capabilities based on the JDEasyFlow specification in JSON format.
The BPMN module provides workflow definition and visualization capabilities based on the BPMN standard. Workflow visualization is powered by bpmn-js. Essentially, it converts workflow definitions in BPMN format into the JDEasyFlow format.
