Files
ordo/docs/roadmap.md
T

2.8 KiB
Raw Blame History

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。