56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
# Ordo Roadmap
|
||
|
||
本文档是后续开发计划。「开发计划」中的项会做。「暂不在计划中」的项在另有决定前不做。除此之外仍可能立项其他新特性。
|
||
|
||
对外行为落地后同步 [usage.md](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](usage.md)。
|