4.2 KiB
4.2 KiB
需求边界闭合方案
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未闭合时,不得宣称需求或生产切流完成。