docs: add durable execution state management and idempotency patterns

- Three-layer state management (system/execution/business)
- Event sourcing simplified pattern for project workflow
- Idempotency patterns (unique ID, state check, compensation)
- Checkpoint strategy with time/event/state-change triggers
This commit is contained in:
2026-05-28 14:46:59 +08:00
parent c3619e9a73
commit 0728f65ead

View File

@@ -808,3 +808,46 @@ LangChain 将 Harness Engineering 应用于开源项目,取得了可观的效
→ 80%+ 任务一次通过编译
→ 人工介入聚焦架构和设计决策
```
## 持久化执行:状态管理与幂等性
### 三层状态管理
| 层级 | 内容 | 本项目的实现 |
|---|---|---|
| **系统层** | 工作流 ID、超时、重试配置 | update_plan 记录任务 ID 和进度 |
| **执行层** | 当前活动、执行进度、等待事件 | 编译失败后从失败点继续 |
| **业务层** | 已完成工作、中间产物 | git diff 记录变更,编译结果作为验证 |
### 事件溯源(本项目的简化版)
每次操作产生不可变的事件记录,用于审计和恢复:
```
事件流(按时间顺序):
① 你提交任务 → ② 我制定计划 → ③ 修改代码
→ ④ 编译检查(通过/失败) → ⑤ 数据流验证
→ ⑥ 你审查(通过/驳回) → ⑦ 提交代码
```
每次事件都可通过 `git log` + update_plan 追溯。
### 幂等性模式
| 模式 | 说明 | 本项目的应用 |
|---|---|---|
| **唯一标识** | 每个操作生成唯一 ID已执行则跳过 | 同一个 Bug 修复不重复生成相同文件 |
| **状态检查** | 执行前检查目标是否已达成 | 编译检查只运行一次,不重复编译已成功的模块 |
| **补偿操作** | 失败时回滚到之前状态 | 编译失败 → 撤销本次修改 → 从上次检查点继续 |
### 检查点策略
```
时间触发每个关键步骤完成后保存检查点update_plan
事件触发:编译通过/失败后保存
状态变化代码修改后保存git diff 可见)
恢复流程:
失败 → 定位最新检查点 → 分析失败原因
→ 从失败点修复 → 继续执行(不从头开始)
```