工作流 — 技术概览
概要
本页为 WorkFlow 模块的技术概览,说明已实现的功能、设计取舍以及仍未实现或部分实现的能力点。
已实现要点:
- 可视化建模画布(节点/连线、拖拽、缩放、撤销/重做)。
- 发布快照(
WorkFlowRelease)与基础执行推进机制。 - 自动无动作事件推进、定时事件到期扫描、错误/终止结束事件终止执行。
Exclusive / Parallel / Inclusive / EventBased已具备基础运行时路由能力。- 服务任务自动执行闭环(默认执行器 + HTTP / WebHook / 可扩展执行器注册表)。
- 节点级执行留痕(
NodeExecutionRecord)。 - 用户任务当前已收敛为人工任务;自动化能力统一通过服务任务 + 服务提供者表达。
未完全实现(需参照 osc_dev_doc 继续完善与验证):
- 生产级事件驱动基础设施(跨进程 Broker / 持久化 Scheduler 接入)。
- 更完整的用户任务状态机(签收、退回、转派、超时等)。
- 责任分配到具体执行者(Responsibility → User)解析与策略。
- 更丰富的真实业务服务执行器治理能力(重试、幂等、补偿、熔断)。
更多细节:
- 将在实现阶段记录具体的接口规范、数据模型差异与运行时行为;
- 下一步为与后端团队对齐事件/网关/责任分配接口并形成实现计划与测试矩阵。
架构概览(实现视角)
组件划分:
- 模型层(Design Model):负责存储流程定义、节点、连接与发布版本(WorkFlowRelease)。
- 执行引擎(Execution Engine):负责流程实例生命周期管理、节点调度与状态机转换。
- 事件总线(Event Bus):用于承载消息事件和定时器触发,支持持久化订阅与重放。
- 定时调度器(Scheduler):负责可靠定时任务(持久化、恢复、时区处理)。
- 责任解析器(Responsibility Resolver):将文档中定义的责任映射到具体用户/角色/队列。
- 服务执行器(Service Executor):封装外部服务调用、超时/重试、幂等性保证。
当前项目的默认落地方式:
- 消息事件:进程内消息总线装配点;
- 定时事件:进程内后台扫描;
- 状态存储:数据库中的流程实例、节点实例与执行记录;
- 局域网部署下通常不需要额外引入独立消息队列。
数据持久化:流程实例、任务实例与事件订阅信息均需要持久化(推荐使用关系型 DB 存储元数据、使用事件存储/队列承载消息流)。
伸缩与可靠性:Execution Engine 与 Scheduler 可设计为无状态工作节点,依赖数据库与消息总线保证可恢复与水平扩容。
安全与权限:责任解析与任务访问需与统一的鉴权/授权模块集成(例如基于 JWT + RBAC/ABAC 策略)。
测试与验收:为每个子模块编写单元测试、接口契约测试与端到端(E2E)场景用例,包含失败/恢复/网络抖动场景。