Files
msgexchange-v2/docs/spec-boundary-closure.md
T

52 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求边界闭合方案
## 1. 目标
阶段 A 闭合 `US-01``US-14``OPS-1``OPS-4``US-15` 保留为阶段 B 边界。
- 需求与验收以 `US-xx``OPS-x` 为唯一依据,本文件只做实施覆盖映射。
- 实现必须遵守 `D1``D4``PRE-1``PRE-8``INV-1``INV-22``CLM-3``CLM-10``C-1``C-29`
- 参数、指标和错误分类只引用 `PARAM:<key>``reference.md`,不重复取值。
- `Q2``Q16` 未定案时只阻断对应验收,不补写猜测。
## 2. 边界
- 航班当前态只存自有 PG;不引入 Redis、阶段 A 的 ES、新业务库、并行主泵或分布式锁。
- 共享 MySQL 只做契约内读写与回填;不建表、不增列、不迁移、不写共享历史表(`C-14`)。
- 生产保持单活动实例;不承诺端到端恰好一次、跨 `FLID` 顺序或未经验证的 Oracle 11g 支持。
- `US-15` 未启用前遵守 `D1`:历史写入未确认成功时航班清场删除 0 条。
- 进度与排期只记 Plane,本文件不记录完成状态。
## 3. 需求覆盖
| 需求 | 必须闭合的能力 | 约束 / 缺口锚点 |
|---|---|---|
| `US-01` | 按 ID 有限采集、持久水位、幂等入队、空洞与中断恢复 | `INV-2``INV-5``Q2` |
| `US-02` | 安全兼容注入,落信确认与业务完成分离 | `C-28``Q3``[G-COMPAT-HTTP]` |
| `US-03` | 严格 FIFO、安全解码、身份去重、事务提交与持久重试 | `INV-3``INV-6``INV-10``INV-17``Q6``Q11``Q15` |
| `US-04` | 忽略报文在身份绑定后无业务副作用终结并回填 | `INV-8``INV-9``[G-IGNORE]` |
| `US-05` | ADFT、FDEL、29 类 FLOP、完整航班态及主/共享关系 | `INV-11``INV-22``Q8``Q13``Q14``Q16``[G-FLOP-IDEMPOTENT]``[G-MAFL]``[G-SRVT-VIPF]` |
| `US-06` | DNLD/RESP 整包快照、请求守卫、迟到应答隔离 | `INV-12``INV-15``INV-19``Q5``Q13``[G-RESP-GUARD]` |
| `US-07` | Kafka 至少一次投递、同 `FLID` 保序、schd 聚合、失败与清理 | `D3``INV-10``C-29``Q4``[G-KAFKA-D3]``[G-EVENT-RETENTION]` |
| `US-08` | 14 类 RQRD、1 类 RQFD、出站落信、开放请求唯一、匹配与超时 | `C-23``C-24``Q3``Q5``Q8``Q10``Q14``[G-REQ-TRACK]``[G-REQ-OPEN-UNIQUE]``[G-REQ-TRACK-RETENTION]` |
| `US-09` | 终态回填意图、后台补偿、四结果、放弃与人工恢复 | `INV-7``INV-8``C-5``C-8``Q7``Q9``[G-BACKFILL-BACKOFF]``C-6` 不成立时闭合 `[G-REPLAY-CHANNEL]` |
| `US-10` | 可查询、可预览、白名单重放、风险预检、授权与审计 | `CLM-3``Q6` |
| `US-11` | 已了结终态归档、去重影子、竞态复查及独立保留期 | `D4``C-14``C-16``[G-PROC-HST]``[G-HST-RETENTION]` |
| `US-12` | 从 PG 权威态查询实时主航班,固定契约且依赖失败不伪装为空 | `INV-11``Q3` |
| `US-13` | 21 类参考主数据完整校验、原子发布、失败保旧 | `Q8` |
| `US-14` | 机位/登机桥映射原子发布,PSDT 只读计算 | `Q8` |
| `US-15` | 阶段 B 历史归档成功后清场及删除事件恢复 | `D1``INV-18``Q9``[G-FLIGHT-HIST-RETENTION]` |
| `OPS-1` | 真实适配器、配置与单写者拒启,失权停写,安全停机 | `D2``PRE-5` |
| `OPS-2` | 真实健康、积压/失败指标、告警、受控处置与敏感信息保护 | `reference.md` |
| `OPS-3` | 影子数据库、topic、服务身份隔离并禁生产写 | `PRE-1` |
| `OPS-4` | 对拍、切流观察、恢复演练及完整回退规程 | `C-1``C-29` |
## 4. 统一验收
- 每个 PR 标明 `US-xx/验收条目`、相关 `Q`、迁移、配置、恢复影响和未包含范围。
- 排序、重试、幂等、投递必须覆盖 `invariants.md` 的验证映射;业务类型必须有 golden 样例。
- 时间测试使用 `TestClocks.kt`;领域与适配器测试使用内存实现,事务与迁移使用既有 PG 测试设施。
- 自动化测试禁止 `Thread.sleep` 和真实外部基础设施;Kafka/MySQL 现场验收单独留证。
- 使用锁定的 JDK 25、Micronaut 5.1.3 及现有 KSP/Jackson 编译参数,不升级或重构无关模块。
- 真实适配器、契约、测试及对应 `OPS-x` 未闭合时,不得宣称需求或生产切流完成。