https://github.com/lightweight-component/aj-workflow
A workflow engine
https://github.com/lightweight-component/aj-workflow
workflow workflow-engine
Last synced: 8 months ago
JSON representation
A workflow engine
- Host: GitHub
- URL: https://github.com/lightweight-component/aj-workflow
- Owner: lightweight-component
- License: apache-2.0
- Created: 2024-06-12T14:13:42.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-02T09:43:59.000Z (over 1 year ago)
- Last Synced: 2025-03-02T10:27:52.125Z (over 1 year ago)
- Topics: workflow, workflow-engine
- Language: Java
- Homepage:
- Size: 82 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A workflow engine 工作流
A lightweight workflow engine for Java.
# 如何理解工作流?
对于未接触工作流系统的同学,可能好奇工作流到底扮演着一个什么的角色。网上介绍的通常比较抽象,——下面就利用笔者自己的话,说说对工作流系统的理解。
一个工作流系统,首先定义了一系列的流程,然后通过 API 与其他第三方业务系统交互,
比如 A 业务触发了某个流程,接着 B 业务触发下一个流程节点(进行下一步),最后工作流系统本身觉得此时某个条件被满足了,则进行下一个节点迁移,同时也触发了 C 业务系统得到业务的通知。
这有点业务解耦的意味,工作流系统要处理一个或多个业务系统。这些业务系统都是来自于第三方的。工作流充当了一个中间层,将不同的业务系统连接起来,降低了各个系统之间的依赖度。
除了业务解耦,还有用户视觉维度的解耦。试想想看,对于不同的权限的用户,允许参与者在流程的不同阶段输入数据或做出决策。
这样延申的话,则业务逻辑不仅仅只是写于我们普通的 Java 代码中,而是被抽象并独立出来,游离于 Java/C#/Node 本身的业务系统,单独定义在工作流系统那么一个模块之中。
而且,不是再写代码的方式,而是:1)表面是“可视化”的业务逻辑,直观化、图形化;2)底层是利用声明式的语言例如 XML 而不是 Java/C#/Node 去定义业务逻辑。这使得业务逻辑更容易理解和维护