Files
my-vault/airport-wiki/concepts/aodb/AODB 实施 Backlog.md
T

258 lines
5.7 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.
# AODB 实施 Backlog
## 1. 文档定位
本文档将 AODB 高层设计拆解为可执行实施 backlog,用于排期、分工、估算和测试准备。
- 上位输入:
- `AODB 核心需求提炼.md`
- `开源机场运营数据库(AODB)高层设计文档.md`
- `开源技术栈选型决策.md`
- 输出对象:
- Epic / Story / Task
- 验收条件
- 测试关注点
## 2. 里程碑视图
| 里程碑 | 目标 | 完成标准 |
| --- | --- | --- |
| M1 | 建立核心文档和 ADR 基线 | 需求、架构、技术栈、ADR 对齐 |
| M2 | 完成核心数据接入和当前态闭环 | SSIM / AIDX / AFTN 接入后能形成 Published Fact |
| M3 | 完成资源分配、冲突和告警闭环 | Stand / Gate / Belt / Counter 的分配和冲突可追溯 |
| M4 | 完成查询、订阅、审计和人工复核闭环 | 外部读取、事件回放、人工裁决可运行 |
| M5 | 完成容灾、压测和上线门禁 | SLO、演练、对账、补偿全部达标 |
## 3. Epic 清单
### Epic 1:领域模型与数据契约落地
目标:
- 将高层设计中的聚合、字段、事件和权威矩阵落到实现契约。
Stories
1. 建立 `FlightOperation` 数据模型
2. 建立 `Turnaround` 数据模型
3. 建立 `MilestoneObservation``DecisionLog` 数据模型
4. 建立 `Resource` / `ResourceAllocation` 数据模型
5. 建立 `AlertCase` / `DataQualityFlag` 数据模型
验收条件:
- 所有核心对象具备主键、唯一键、幂等键和状态字段定义
- Published Fact 可追溯到 Observation 和 Decision
测试关注点:
- 主键稳定性
- 幂等键生成
- 配对修正一致性
### Epic 2:接入与标准化
目标:
- 接入 SSIM、AIDX、AFTN 并形成统一内部事件模型。
Stories
1. 实现 SSIM 导入和批次标识
2. 实现 AIDX 标准化映射
3. 实现 AFTN / Type B 报文解析
4. 实现标准化失败进入 DLQ
5. 实现人工复核任务创建
验收条件:
- 三类输入都能进入标准化事件模型
- 解析失败可复核、可重放、可审计
测试关注点:
- 重复导入
- 报文乱序
- 格式错误
### Epic 3Published Fact 与字段级权威治理
目标:
- 实现 Observation -> Decision -> Published Fact 的治理链路。
Stories
1. 实现字段级权威矩阵加载与版本化
2. 实现候选事实评估
3. 实现自动裁决
4. 实现人工裁决写入
5. 实现 Published Fact 更新和审计
验收条件:
- ALDT、AIBT、TOBT、Stand Assignment 等关键字段完成治理闭环
- 当前值可返回来源、可信度和裁决摘要
测试关注点:
- 多源冲突
- 更正报文
- 超窗乱序
### Epic 4:资源分配与冲突治理
目标:
- 让资源分配具备最小可运营能力,而不是只有时间窗逻辑。
Stories
1. 建立 Resource 主数据和能力约束
2. 实现 ResourceAllocation 软锁 / 硬锁
3. 实现时间冲突检测
4. 实现适配 / 状态 / 策略冲突检测
5. 实现人工覆盖与回滚
验收条件:
- 四类资源都具备分配、冲突、覆盖和审计能力
- 冲突能明确归类并生成告警
测试关注点:
- 延误引发冲突
- 换机型
- 资源停用
### Epic 5:告警、Case 和人工复核
目标:
- 把“人工介入”从口头方案变成有状态可追溯流程。
Stories
1. 建立 AlertCase 状态机
2. 建立 ReviewTask 状态机
3. 实现 `ManualDecisionRecorded`
4. 实现 `ReviewTaskOpened / Closed`
5. 实现告警确认、关闭、抑制
验收条件:
- 告警和复核都有结构化状态流转
- 人工动作全部事件化和审计化
测试关注点:
- 告警重复触发
- 复核结果重放
- 覆盖与回滚
### Epic 6:事件骨干与订阅
目标:
- 构建可重放、可补偿、可隔离的标准化事件分发能力。
Stories
1. 设计 Topic 与分区策略
2. 实现统一事件信封
3. 实现 Outbox + CDC 发布
4. 实现事件订阅接口
5. 实现断线重连与游标回放
验收条件:
- 对外事件以 Kafka 标准化事件为唯一源头
- 订阅具备至少一次投递和补偿能力
测试关注点:
- 重复投递
- CDC 断点恢复
- 消费者去重
### Epic 7:查询接口与权限治理
目标:
- 提供只读查询,不污染事实事件路径。
Stories
1. 实现 FlightOperation 查询
2. 实现 MilestoneObservation 历史查询
3. 实现 ResourceAllocation 生效集查询
4. 实现 AlertCase 查询
5. 接入 OIDC / OAuth2 / RBAC
验收条件:
- 查询接口支持过滤、分页、更新时间和数据质量字段
- 读权限和订阅权限隔离
测试关注点:
- 稳定分页
- 字段权限
- 限流
### Epic 8:平台、容灾与观测
目标:
- 为 SLO 提供可验证支撑,而不是口头承诺。
Stories
1. 实现 PostgreSQL HA 和备份恢复
2. 实现 Kafka 副本和保留策略
3. 实现 CDC / 发布器观测
4. 建立端到端延迟、DLQ、幂等命中率监控
5. 完成容灾与回放演练
验收条件:
- RTO / RPO 有演练记录
- P95 延迟、对账、订阅补偿可验证
测试关注点:
- DB 切换
- 事件堆积
- 订阅重连
## 4. Story 模板
每个 story 必须具备:
- 背景
- 范围
- 非范围
- 接口 / 数据影响
- 验收条件
- 回归风险
- 测试点
## 5. 建议实施顺序
1. Epic 1:领域模型与数据契约落地
2. Epic 2:接入与标准化
3. Epic 3Published Fact 与字段级权威治理
4. Epic 4:资源分配与冲突治理
5. Epic 5:告警、Case 和人工复核
6. Epic 6:事件骨干与订阅
7. Epic 7:查询接口与权限治理
8. Epic 8:平台、容灾与观测
## 6. 进入开发前的 Gate
- 高层设计、技术栈、ADR 无结构性冲突
- 字段级权威矩阵完成首版
- 事件 schema 草案完成首版
- 最小部署拓扑完成首版
- Epic 级拆解得到负责人和初步估算