Files
junhong_cmp_fiber/.scratch/tech-public-foundation/issues/04-outbox-observability-and-recovery.md
break 17782d5f8e
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s
实现七月迭代公共技术基础
2026-07-23 17:52:48 +09:00

1.7 KiB
Raw Blame History

04 — 提供 Outbox 监控和受控恢复能力

What to build: 运维人员可以查看 Outbox 待投递量、最老积压、处理中和过期租约、成功率、重试分布、最终失败及按事件类型聚合的状态,并能对明确选择的失败或滞留事件执行受控重放或租约释放。恢复操作保留原事件内容和身份,并通过统一审计接缝记录操作者与原因。

Blocked by: 03 — 完成 Outbox 到 Asynq 的至少一次投递闭环

Status: completed

架构通道: 主通道为 Query辅助通道为 Infrastructure。

完整业务边界: 本票收口 Outbox 运行状态查询、指标、告警和受控恢复用例。明确不实现 Audit Event 模型或查询,不删除 Outbox不修改已投递事件内容不跳过消费者幂等检查。

  • 查询和指标覆盖待投递量、最老待投递年龄、处理中、过期租约、成功率、重试分布、最终失败和按事件类型的积压。
  • 日志、指标和告警使用事件 ID、关联 ID 与安全资源标识串联,不把完整载荷或敏感值作为日志字段或指标标签。
  • 受控重放只接受明确选择的失败或滞留事件,保留原事件 ID、载荷和关联标识并记录操作者、原因和恢复批次。
  • 租约释放只作用于符合状态与过期条件的事件,不能越过当前租约所有者直接修改正在有效处理的事件。
  • 人工恢复通过统一审计 Port 记录;审计不可用时遵循明确的失败策略,但本票不创建独立审计表。
  • 测试覆盖积压统计、阈值告警、最终失败、选择性重放、租约释放和越权/非法状态拒绝。