18 KiB
Orbit 持续开发与回归计划
更新:2026-09-18。此计划对应持续开发目标,由开发过程同步维护。数据库已按用户要求采用无外键设计,迁移 000008 移除历史外键,关联一致性由服务端事务保证。
1. 最终交付目标
交付可由多个业务项目接入的 Go + MySQL + HTTP/WebSocket 平台:Pulse 管理任务与调度,Weave 管理持久化流程,业务处理器运行在独立 Worker。研发通过独立 Go SDK 定义和发布流程。
完成标准包括服务端、SDK、迁移及运行工具、Markdown 接口手册、可运行场景示例,以及实际正确性/故障/性能验证记录。完成设计、单机运行或展示一条正常路径,均不等同于完成首版交付。
2. 持续推进方式
每个阶段按以下顺序推进:
- 根据已确认功能细化状态、协议、数据及完成标准。
- 完成一条可执行的业务无关调用链,同步 SDK 和文档。
- 运行单元、真实数据库、协议及端到端回归,记录失败与修复。
- 验证该阶段异常路径、兼容性、授权边界与可恢复性。
- 更新本计划、接口实现状态、示例和验证报告,再进入下一阶段。
常规技术选择和缺陷修复自主进行。只有确实缺少外部信息或涉及未获授权的操作时才请求用户介入。不能为了让目标显示完成而隐藏未实现项或跳过故障验收。
3. 阶段清单
| 阶段 | 开发内容 | 回归与完成标准 | 当前状态 |
|---|---|---|---|
| P0 基础与数据模型 | Go workspace、独立 SDK module、公共/Pulse/Weave 模型、MySQL 迁移、配置、健康检查 | 编译/竞态/静态检查;真实 MySQL 建表、隔离、唯一性、预算、不可变版本、迁移失败防护;SDK 健康调用 | 已完成并通过阶段回归(见 P0 报告) |
| P1 任务受理闭环 | 应用凭据与作用域权限、队列、幂等提交、查询、待执行取消、受理事件;SDK 客户端 | API/SDK 创建查询闭环;重复键与内容冲突、响应未确认重报、跨命名空间拒绝、参数边界 | 已完成并通过阶段回归(见 P1 报告;真实断路/提交 ACK 丢失注入留后续故障阶段) |
| P2 Worker 执行闭环 | WSS 接入、能力/容量、领取与开始、租约、续租、结果确认、排空与恢复;Worker SDK | 真 Worker 执行;失联/重连/重复确认/旧尝试拒绝;业务效果未知转核查;节点故障接管 | 已完成并通过阶段回归:服务端、自动 SDK、历史查询、完整 Schema 与真实进程强杀恢复;测试拓扑和剩余生产故障矩阵见 P2 验收报告 |
| P3 Pulse 完整能力 | 安全重试、延时、Cron/固定间隔、漏跑策略、计划版本、运行中取消、并发许可、配额/背压、可靠结果订阅、批量受理、独立任务核查/人工重试、查询筛选与事务Outbox接入 | 多实例领取/触发竞争、重试上限、取消竞争、队列隔离、积压恢复、事件重复交付 | 已完成平台功能阶段验收:原范围逐项核对、本轮完整回归。补齐相对延迟、改参数关联示例和四种重试全停恢复场景;20个可运行示例全部通过。全平台生产门槛及SDK首版交付剩余项仍按P6–P7推进 |
| P4 Weave 主流程 | SDK 定义构建与发布校验、实例、顺序/分支/结构化并行汇合、信号/定时等待、版本绑定 | 重启接续、早到/重复信号、并行竞争、内部事件重放、发布版本兼容;端到端通用流程 | 定义格式/词法类型校验、不可变发布、独立SDK及六类节点定义例子已实现,已通过子项验收;已补有限决策器及内部结果交付;实例受理及首批事务已实现;结果消费和根接续已接入后台,顺序/分支/并行及真实进程恢复已验证;TIMER与后续POLL轮次已接入;信号消费和最终查询竞争已接入内部运行器;内部控制与停止结清已接入;内部核查与TASK新激活已接入;独立SIGNAL/TIMER等待重建和实例公共API/SDK继续开发 |
| P5 Weave 恢复与查询 | 有界查询、暂停继续、取消、人工核查恢复、控制门控与审计 | 轮次与尝试独立预算;暂停/开始/回执/超时竞争;恢复保留预算;未知结果不盲目重复 | 有界查询轮次/尝试独立预算及原截止恢复已接入内部运行器;最终信号竞争及在途查询结清已接入;内部暂停/继续/取消与失败结清已接入;执行核查、步骤结论、解除核查及TASK新激活已接入;POLL跨激活恢复已接入;独立SIGNAL/TIMER等待重建及公共API/SDK继续开发 |
| P6 生产验证与运维 | 完整监控、凭据轮换、备份恢复、滚动升级、运行手册、可复现负载和故障工具 | 对照生产验收清单执行,报告环境/指标/遗留项;容量、RPO/RTO 按真实拓扑验证 | 待开发 |
| P7 首版交付核对 | SDK 兼容与发布准备、完整 API 手册、场景示例、全量回归及交付清单 | 新接入者按文档跑通全部示例;所有首版能力可追溯到实现与测试;报告实际生产边界 | 待开发 |
SDK、文档与示例随 P1–P5 同步开发,P7 是全量核对,不是最后才开始补文档。
P4/P5定时等待与后续查询轮次的实现及回归记录见时钟报告。外部信号与最终查询竞争见信号报告。实例公共入口继续与控制能力同步交付,不能将内部存储链路作为完整SDK验收。
P4/P5 下一步实施顺序
- 已实现FAIL_AFTER_SETTLED与显式取消的内部分支结清,见控制报告:持久取消意图、复用Pulse取消、收集已发出查询/任务结果、等待全部已激活工作结清后才进入失败或取消终态。效果未知仍保留核查。
- 已实现实例暂停/继续/取消内部操作,以control_revision、操作幂等身份、明确原因及审计保护控制决定;暂停不延长原截止,继续不覆盖核查或取消状态。
- 已实现内部执行核查、步骤结论、解除核查及TASK新激活和旧激活隔离,见核查报告。POLL跨激活恢复已实现(见查询恢复);继续核查后已确认PENDING的有界等待接续及独立SIGNAL/TIMER等待重建,保留原预算、轮次、结果和证据,不能通过换激活/新键绕过未知效果或执行上限。
- 同步开放实例/步骤/信号/来源/审计HTTP、独立SDK和端到端场景,覆盖原键恢复、权限、版本冲突、竞争与进程全停;公共步骤/激活查询须返回目标激活代次,调用方据此发送恢复后的信号,不能要求调用方自行猜测sequence。公共能力逐项记录实际验收结果。
- 转入P6/P7的生产故障、容量、运维、发布与全部文档核对。内部存储阶段通过不会提前勾选公共接口或生产验收。
P3 功能范围核对
可靠订阅链路完成后,重新对照 原功能范围 和 事务衔接设计,以下原定首版能力已按核对结果补齐;进一步发现的相对延迟与改参数关联示例也已交付。P3验收逐项保留实现证据及尚待P4–P7完成的原范围,不按已有模块反推全平台完成。
| 核对项 | 当前证据与后续交付 |
|---|---|
| 相对延迟与退避全停恢复 | 已实现delay_ms、数据库计时与原回执恢复,调用示例和回归记录同步;四种真实进程场景保持原退避、预算、截止与未知效果 |
| 改参数形成关联新任务 | 查询示例以新提交身份和相同business_key创建不同参数任务,逐项读取确认旧输入保留;不自动取消原任务,也不冒充人工retry_of |
| 批量任务受理 | 已实现批量API、独立SDK及补交示例;真实MySQL部分失败与HTTP响应丢失用例已通过,同键并发20轮及全量回归已通过,见报告 |
| 独立任务人工核查与重试 | 已实现管理API及SDK、专门权限、显式安全声明、证据/版本/审计和关联新任务;完整场景及回归报告同步交付 |
| 任务查询筛选 | 已实现业务键及创建时间查询,v2游标绑定全部筛选、旧游标受限兼容、四种索引路径与完整场景;回归报告同步记录 |
| 任务详情来源追踪 | 已实现独立来源接口、SDK和普通/计划/人工恢复场景,返回计划及触发固定版本;同命名空间归属、当前权限和来源缺失拒绝已通过全量回归,流程来源随Weave接入 |
| 业务到平台的事务Outbox接入 | 已实现独立业务模块及完整接入,覆盖业务变更/待发请求同事务、有限发送恢复、CLI及真实HTTP/MySQL/进程故障,见报告;核心SDK保持无ORM/数据库依赖 |
精确A04派发消息未送达时的进程故障、慢消费者/重连风暴、凭据安全重绑、历史清理、全量监控/容量与MySQL故障切换仍按P6执行;Weave的通用执行门控/内部事件接续随P4–P5落实,不将外部结果订阅当作内部流程引擎。
P3 事务Outbox接入的验收范围
以下内容已由独立业务示例实现并进入回归,实际证据见Outbox报告。P3整体范围已另行逐项核对,下表保留该子项的验收要求:
- 独立业务示例module,以业务记录和待发请求同一个MySQL事务提交;核心SDK保持无ORM/数据库依赖,业务表示例也禁止外键,字段提供中文注释。
- 同时冻结目标命名空间/队列、原幂等键、完整请求及内容摘要。相同业务操作重报不新建待发项,内容不同必须冲突;凭据原文不能进入Outbox或日志。
- 提交、领取与确认分别使用短事务;HTTP在事务外执行。多发送进程通过数据库租约及递增代次协调,旧代次不能覆盖新结果;重启后继续读取持久化待发项。
- 平台已受理但响应丢失、业务COMMIT回执未知、发送进程退出,都必须用原身份核对。只确认平台受理,不将受理标记当作业务执行成功。
- 退避、发送次数及总发送期限均有上限,补发窗口不超过平台幂等保留期;权限、内容冲突、预算耗尽和不能可靠确认的响应需保留可核查记录,不生成新键绕过。
- 真实数据库回归覆盖业务回滚、并发重复、发送竞争、过期租约、迟到确认和原始数字精度;真实HTTP丢响应、MySQL COMMIT响应丢失和发送进程SIGKILL后恢复一并验收。
- 提供完整初始化、提交、运行/恢复、状态核对及失败处理命令;接入全量回归,记录实际测试证据,并纳入P3范围核对。
4. SDK 与示例交付清单
| 场景 | 预期调用链 | 所属阶段 |
|---|---|---|
| 健康检查 | 创建客户端 → 存活/就绪查询 | P0 |
| 文件转换任务 | 提交幂等任务 → Worker实际转换 → 查询结果 | 当前仅有受理/取消示例;真实转换例子仍须在P7首版交付前补齐 |
| 相对延迟执行 | 受理时按数据库时间等待 → Worker实际执行 → 历史时间核对 → 原键重报不重计时 | P3,已实现完整示例 |
| 有限安全重试 | 明确失败 → 持久化退避 → 新尝试 → 查询完整历史 | P3,已实现完整示例 |
| 定期数据同步 | 发布计划 → 触发任务 → 暂停/恢复 → 查看触发记录 | P3,已实现通用快照示例 |
| 运行中取消 | 保存取消意图 → 停止处理器 → 确认结果 → 查询并排空 | P3,已实现完整示例 |
| 队列限速与背压 | 暂停 → 满额拒绝 → 原回执核对 → 释放空间 → 限速执行 | P3,已实现完整示例 |
| 跨命名空间应用配额 | first 受理 → second 全局满额 → 释放 → 原键成功 → 恢复配置 | P3,已实现完整示例 |
| 跨队列共享资源 | 两队列同键 → 一个有效许可 → 递增序号 → 资源端拒绝旧写入 | P3,已实现完整示例 |
| 优先级与应用隔离 | 近同时到期按优先级 → 旧任务等待补偿 → 应用/队列轮转 | P3,已实现完整示例 |
| 可靠结果订阅 | 冻结结果 → 持久化交付 → Inbox 去重 → 确认/补发 → 耗尽后人工重试 | P3,核心、HTTP/WSS、管理及消费 SDK、独立Inbox示例与真实进程故障回归已完成 |
| 批量文件作业受理 | 逐项身份 → 部分结果 → 同键核对 → 释放额度 → 只补交失败项 | P3,已实现完整示例 |
| 业务事务Outbox | 业务记录/请求同事务 → 原键发送 → 受理/业务关联同事务 → 故障恢复 | P3,已实现独立模块与完整示例 |
| 业务操作定位 | 精确业务键 → 创建区间 → 游标分页 → 查询详情 | P3,已实现完整示例 |
| 独立任务人工恢复 | 未知结果 → 证据核查 → 保留原任务 → 关联新任务 → 审计查询 | P3,已实现完整示例 |
| 研发定义发布 | 六类节点描述 → 校验/发布 → 原键确认 → 新版本 → 读取旧版本 | P4定义子项,已实现示例 |
| 并行生成结果 | 发布流程 → 并行执行 → 汇合 → 完成 | P4 |
| 审核与外部回执 | 提交流程 → 等待信号 → 授权信号注入 → 继续 | P4 |
| 外部作业轮询 | 提交一次 → 有界查询处理中状态 → 回执或最终结果 → 超限核查 | P5 |
| 暂停与人工恢复 | 暂停 → 保存结果 → 核查/恢复 → 查看审计 | P5 |
| 故障恢复 | 节点/连接中断 → 相同身份核对 → 恢复或人工核查 | P2–P6 |
| 执行历史核对 | 读取尝试 → 查看冲突/迟到证据 → 对照权威结果 | P2,已实现完整示例 |
每个正式示例需要:前置配置、完整可运行源码、启动命令、输入、预期输出、失败路径、幂等/清理说明。SDK API 尚未实现时,文档只能标为规划,不能给出伪装可运行的代码。
5. 回归规则
- 每次模型或迁移变化:执行真实 MySQL 集成测试,验证外键为 0、服务端关联归属、唯一约束与升级数据保留。
- 每次状态或协议变化:更新服务端、SDK、兼容说明与异常场景。
- 每次执行/恢复变化:增加对应断线、超时、重复、迟到、宕机或竞争用例。
- 每次发布候选:全量回归、示例回归、迁移检查、故障和负载报告。
- 验证失败先修复再推进,未执行的项目明确记为未验证。
6. 性能与高可用验收边界
不直接用租户总数作为容量结论。P6 先固定硬件、数据库拓扑、消息大小、任务时长、连接数、峰值与积压模型,再记录受理/派发/推进/恢复的吞吐、延迟和资源消耗。
本地多实例与故障注入可以验证恢复逻辑;实际生产复制确认、跨故障域部署、备份介质、RPO/RTO 及峰值余量,需要在对应部署环境复测。所有报告分别标注已验证、未验证和当前限制。
7. 文档入口
- 有界查询恢复
- POLL恢复验证记录
- 数据模型
- 可靠结果订阅核心
- P3 订阅核心回归
- P3 订阅通信与管理 SDK 回归
- P3 消费 SDK 与节点故障回归
- P3 业务 Inbox 与消费者故障回归
- P3 批量任务受理回归
- P3 人工核查与重试回归
- P3 业务键与时间查询回归
- P3 任务直接来源回归
- P3 业务事务Outbox回归
- P3 相对延迟与全停恢复回归
- P3 原功能范围核对
- 接口手册
- SDK 接入
- 通用场景示例
- 生产验收总清单
- P0 验证记录
- P1 验证记录
- P2 阶段验收与进程故障记录
- P3 安全重试阶段记录
- P3 计划调度阶段记录
- P3 取消与无外键回归
- P3 队列资源控制回归
- P3 应用共享配额回归
- P3 资源键许可回归
- P3 优先级和公平派发回归
- P2 服务端阶段记录
- P2 SDK 协议阶段记录
- P2 自动 Worker 运行器记录
- P2 执行历史与大载荷记录