# 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 3:Published 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 3:Published Fact 与字段级权威治理 4. Epic 4:资源分配与冲突治理 5. Epic 5:告警、Case 和人工复核 6. Epic 6:事件骨干与订阅 7. Epic 7:查询接口与权限治理 8. Epic 8:平台、容灾与观测 ## 6. 进入开发前的 Gate - 高层设计、技术栈、ADR 无结构性冲突 - 字段级权威矩阵完成首版 - 事件 schema 草案完成首版 - 最小部署拓扑完成首版 - Epic 级拆解得到负责人和初步估算