第 26 章 —— 交付可复核的履约控制面
本章目标: 本章完成后,开发者能够运行书籍自有履约控制面,串起三类集合、故障实验、观察信号与证据等级,并作出带边界的发布判断。
学习目标
- 从业务合同追到 DSM adapter,而不是让业务层依赖集合 API。
- 同时验收 Register、Lease、CRDT 的正常路径和失败窗口。
- 用一条脚本复跑书籍、示例、观测、安全、生命周期、federation、真实端口与出版证据。
- 输出「可以发布什么」和「仍需部署验证什么」。
前置条件
- 已完成第 1–25 章。
- Java 25、Maven/Wrapper 与 Node.js 22+ 可用。
- DSM
0.1.2已安装到本地 Maven repository,或先执行完整 DSM 构建。
案例进度
履约控制面拥有三个业务动作:发布健康 route、领取
shard、累计接受请求。业务服务只依赖
FulfillmentCoordination;DsmFulfillmentModule
在 composition root 内拥有 Runtime、locator、codec 和 typed
handles。
验收的对象是一条链
| 层 | 验收问题 | 失败时回到哪里 |
|---|---|---|
| 业务合同 | 调用者是否只看到 route、claim、count 与 uncertain/fencing | 领域端口与业务不变量 |
| 集合适配 | Register/Lease/CRDT 是否各自表达正确状态 | locator、codec、集合选择 |
| 故障实验 | 并发、分区、漏失、repair 的业务结果是否写清 | 失败合同与外部门禁 |
| 运行责任 | 能否诊断、拒绝不可信消息、正确 ready/stop | Arc 5 运行合同 |
| 证据等级 | 每个声明在哪个执行面被验证 | 追踪矩阵与验收命令 |
DSM 价值的最终兑现
毕业项目把全书价值压缩为一条可运行路径:业务层通过领域端口表达发布路由、领取分片和累计请求,DSM adapter 复用 Register、Lease、CRDT、传播与修复能力,测试和观察面说明这些机制在何种执行环境下成立。业务团队可以减少在各个服务中重复实现同类协调基础设施的工作,同时继续负责订单事实、外部 fencing、分区期间的响应策略以及目标环境验收。
这条路径也是全书学习结果的判据。开发者需要能够从业务不变量选择或拒绝 DSM,运行正常与故障实验,解释观察结果,并把未覆盖范围转成后续部署任务。
正常路径不是最终验收
书籍 Maven 示例验证领域 fake 与真实 standalone Runtime;DSM 集成测试验证多节点传播、repair、安全和 federation;Redis-shaped 示例验证真实端口。三层证据组合后仍不能宣称生产网络、外部事务 fencing、部署排空或容量 SLA 已完成。
一键验收
node scripts/verify-capstone.mjs脚本串行运行,避免多个 Maven reactor 共享 target
造成无效并发失败。它会停止在第一条失败命令,并打印每个证据层的名称;最后重新导出
Draw.io 图、构建在线书和中文 PDF,确保内容与出版物属于同一候选状态。
发布判断模板
可以确认: 书籍固定 revision 上,业务端口隔离成立;三类 collection 能运行;受控多节点传播/repair、安全/federation 测试与 loopback RESP 黑盒通过;章节资产、链接、图稿和出版构建可复跑。
仍需部署验收: 生产 topology、跨主机网络、外部存储 fencing、指标后端和值班、密钥托管、真实 drain、数据规模、峰值 repair、容量与灾难恢复。
任何一项「仍需」都需要有 owner、环境、命令/探针、阈值与失败处置,不能用本书绿灯代替。
反例与故障注入
- 修改 asset 却不更新 manifest,或让业务层直接返回
DsmRegister,确认门禁分别拒绝证据漂移与技术类型泄漏。 - 把 Redis loopback 写成生产跨主机结论,或并行运行共享
target的 Maven reactor,确认边界审查与串行门禁能阻止假绿。
实验
- 运行
node scripts/verify-capstone.mjs。 - 对照
capstone-acceptance.json检查每项 claim、evidence、boundary。 - 为目标部署另建 acceptance card;书籍验收卡不能替代生产完成证明。
实验验收卡
| 字段 | 内容 |
|---|---|
| 运行命令 | node scripts/verify-capstone.mjs |
| 输入或故障 | 三类集合、领域端口、repair/security/lifecycle/federation、真实 RESP socket 与出版链路 |
| 可观察结果 | 所有固定证据串行通过;失败命令非零退出;边界卡完整 |
| 证据等级 | E1–E4 组合,按声明选择,不以最高等级覆盖全部结论 |
| 本实验未证明 | 目标组织和生产环境已经完成上线批准 |
回顾
- 交付物是业务合同、运行实现、故障实验、证据和边界组成的链。
- 一键脚本提高可复核性,不自动提高证据等级。
- 任何发布判断都需要绑定 revision、环境和未证明事项。
- 全书完成的判据包括模块可构建,以及开发者能够独立复现实验并作出边界一致的判断。
下一步
使用附录快速查询 API、Spring 属性、排障路径、术语和证据;当 DSM revision 改变时,从附录 E 反向定位需要复核的章节。