2.8 KiB
Ordo Roadmap
本文档是后续开发计划。「开发计划」中的项会做。「暂不在计划中」的项在另有决定前不做。除此之外仍可能立项其他新特性。
对外行为落地后同步 usage.md。
已完成
- ANY/ALL 会签/或签
- JDBC 存储(PostgreSQL)+ Flyway V1–V6
- 条件路由
StepTransition+RoutingCondition - ACTION +
ActionHandler;执行记录持久化 - 发起人撤回
WITHDRAWN - 分页查询:任务 / 实例 / 定义
- 审计
ProcessEvent/queryHistory;OrdoEventListener - 任务转派
reassign/TASK_REASSIGNED - 到期升级
processDue/TASK_ESCALATED - 管理员/系统取消
cancel/CANCELLED
开发计划(确定要做)
下列能力已纳入计划,尚未实现。实现顺序可按依赖调整,但范围本身不从计划中拿掉。
定义不可变多版本
当前同 id 用 replace 整体替换;存在 RUNNING 实例时拒绝。计划改为定义不可变多版本:新版本不改写旧版本;运行中实例锁定发起时所用版本。
MySQL 方言
当前 JDBC DDL/冲突处理面向 PostgreSQL。计划增加 MySQL 方言(及对应测试),通过 dialect 层扩展,而不是只支持一种库。
可选 REST + 目录 SPI
引擎入口仍是 OrdoEngine。计划提供可选、极薄的 REST 适配(例如独立 starter),带 OpenAPI,覆盖定义读写/解析校验、实例与任务查询,不包含鉴权、RBAC、业务表单。
配套 目录 SPI:宿主登记可用的 conditionKey / actionKey / 候选人(或角色)项,供 REST 与外部设计器下拉,而不是在 JSON 里写引擎无法执行的表达式。
RoutingCondition / ActionHandler / AssigneeResolver 保持全局单例;流程隔离由宿主用 key 约定(建议前缀)+ 门面分发,引擎不按流程定义拆 bean。
独立设计器(不进本仓库)
流程设计器是单独产品,消费上述 REST 与目录,不做成 ordo 模块。画布对齐引擎图(审批步、ACTION 步、边上的 when/priority,结束为 to: null),不引入 BPMN 网关/并行等引擎没有的语义。节点坐标等 layout 由设计器自存,不进入 ProcessDefinition。
启动时机:REST 契约、目录 SPI、定义不可变多版本落地之后。当前 replace + 无版本锁定不适合作为设计器保存/发布模型。
暂不在计划中
- 多租户(数据模型无 tenant 隔离)
- 设计器 UI(不进 ordo;见上节独立产品)
后续新特性
上表「确定要做」之外,仍可能立项其他能力(例如表单/UI schema、子流程、并行 fork-join)。多租户在另有明确决定前不进入计划。
新特性立项时写入「开发计划」对应小节;完成后移到「已完成」,并更新 usage.md。