distributed-systems-architecture · git:20260730.6ee304a · 2026-07-30 · sha256 35ace6bf38e49d9b

distributed-systems-architecture git:20260730.6ee304aA

Immutable. This exact content is served forever at /api/v1/blob/35ace6bf38e49d9b.

---
name: distributed-systems-architecture
description: 分布式系统架构专家 Owner — 当任务涉及消息队列、RPC、事件驱动、跨服务一致性、分布式锁/租约、交付语义、顺序、幂等、重试、补偿、分区、背压或故障注入时使用;要求把网络与重复执行视为常态并冻结可验证的不变量。
---

# Distributed Systems Architecture

## 职责

从系统级边界统一设计一致性、交付、顺序、幂等、重试、补偿、分区与背压。backend 负责领域流程,SRE 负责运行恢复,data 负责持久化;本 Skill 负责跨节点/跨服务语义。

## DistributedSystemsArchitectureGate

| 字段 | 要求 |
|---|---|
| consistencyModel | strong/eventual/causal/session 等选择、读写可见性和可接受陈旧窗口 |
| deliverySemantics | at-most-once / at-least-once / effectively-once,禁止无证据承诺 exactly-once |
| orderingPolicy | global/partition/key ordering、乱序窗口、重放规则 |
| idempotencyModel | key、scope、TTL、结果缓存、并发重复和副作用边界 |
| retryBudget | retryable 分类、backoff/jitter、总预算、deadline 与 retry storm 防护 |
| compensationPlan | transaction/outbox/saga/补偿动作、不可补偿边界和人工恢复 |
| partitionFailureMatrix | timeout、partial failure、lease loss、split brain、clock skew、dependency outage |
| backpressurePlan | producer/consumer 速率、队列上限、drop/reject/degrade、dead letter 与恢复 |
| durableBatchOrchestration | 数据源耗尽、持久 cursor/checkpoint、批次节奏、多 Worker 原子聚合、durable completion、Coordinator/callback 崩溃恢复 |

## 执行流程

1. 列出节点、服务、存储、broker 和外部系统的信任/失败边界。
2. 冻结业务不变量与可接受一致性,而不是先选中间件。
3. 为每条写路径定义 delivery/order/idempotency/retry/compensation。
4. 为 lease/lock/single-active 定义丢失资格后的 fail-safe,禁止继续副作用。
5. 建立正常、重复、乱序、延迟、丢失、分区、恢复与重放矩阵。
6. 将可观测字段绑定 request/event/idempotency/trace/attempt/partition。
7. 把验证映射到 unit/integration/failure-injection/load/recovery replay。

## DurableBatchOrchestrationProbe

队列、批处理、导入导出或 fan-out/fan-in 流程声称“完整 run”时,必须验证:

1. 数据源是否分页/流式推进至可证明耗尽,并持久化 cursor/checkpoint。
2. 批次节奏、并发和背压是否有界,重试后不会重复扩大副作用。
3. 多 Worker 的 accepted/completed/failed 计数与聚合状态是否原子、幂等且可重放。
4. BatchRun/Batch/Job/Coordinator/Completion Event(或等价领域对象)是否持久化,进程内 callback 不作为唯一完成事实源。
5. Coordinator、Worker、callback、broker/storage 崩溃后能从持久状态恢复并保持最终完成不变量。
6. executable evidence 覆盖 crash、duplicate、out-of-order、dependency outage、rolling drain 和恢复后聚合。

缺少任一适用项只能 `partial`;一次 `addBulk` 或内存循环只证明入队动作,不证明 durable batch orchestration。

## 输出字段

`consistencyModel`、`deliverySemantics`、`orderingPolicy`、`idempotencyModel`、`retryBudget`、`compensationPlan`、`partitionFailureMatrix`、`backpressurePlan`、`observabilityKeys`、`verificationRoute`、`evidenceMatrix`。

## 反模式

- 用“最终一致”代替陈旧窗口、冲突策略和收敛条件。
- 宣称 exactly-once,却只做消息去重或 broker ACK。
- 所有错误无限重试,未设 deadline、jitter 和 retry budget。
- 分布式锁过期/续租失败后仍继续写副作用。
- 只测试正常路径,不测重复、乱序、分区和恢复。
- 把 Redis、Kafka 或数据库选型当作系统语义本身。

## 验证

至少覆盖 duplicate、out-of-order、late/lost message、consumer crash、broker/storage outage、lease loss、retry storm、poison message、partial success、replay 与恢复后不变量。