principle-make-operations-idempotent
更新于 2026-10-01
设计操作,使其无论运行多少次、从何处开始,都收敛到正确 state。每个 mutating state 的操作都应回答:「运行两次会怎样?上次运行半途崩溃会怎样?」
原因: 命令、生命周期操作和处理循环运行在崩溃、重启和重试是常态的环境。若 partial state 改变下次运行结果,每次重启都会变成调试 session。
模式:
- Convergent startup:扫描已有 state,清理 stale artifact,接管 live session
- Content-based cleanup:按内容等价比较,不按创建顺序
- Self-healing locks:用基于 PID 的 stale lock 检测
- Idempotent scheduling:失败工作干净 respawn,每轮后 fresh input 重新生成
检验:
- 连续运行两次会怎样?
- 上次运行在每个可能点崩溃会怎样?
- 重执行是否收敛到相同 end state?
若任一答案是「取决于留下了什么 state」,操作就需要 reconciliation step。
本站是非官方的 pstack 中文学习站,和 poteto 没有隶属关系。译文对照的是 cursor/plugins 仓库里的 pstack/ 目录。本站不发行中文版插件。 github.com/cursor/plugins