参考概览
本部分用于核对 API、持久记录和错误语义。第一次使用请从指南开始;参考页不替代快速开始与恢复教程的完整操作过程。
按问题查阅
| 要核对的问题 | 参考页 |
|---|---|
| Run 与 Resume 的前置条件是什么? | 执行契约 |
| 修改函数、图、输入或 Codec 后能否恢复? | 执行契约 |
| 什么时候发出恢复事件? | 执行契约 |
| 节点成果、子图作用域与 Retry 尝试如何关联? | 数据模型 |
| ready、skipped、nil 与零字节编码如何区分? | 数据模型 |
| Store 的独占与 CAS 要求是什么? | 数据模型 |
| Busy、Conflict 和 CheckpointError 如何处理? | 错误处理 |
| 保存已写入却报错时怎么办? | 错误处理 |
三条核心规则
- 可靠确认后发布:普通成果在完整节点链(包括切面)完成后确认;受管流的追加和消息事务有独立增量边界。每次都在存储确认后发布对应成果。
- 恢复有效成果:有效作用域中的已确认节点不重新进入,未确认节点从函数开头执行。已失败父尝试中的子成果不能用于新的尝试。
- 以重读为准:保存返回错误可能发生在提交之后。停止本次运行,后续恢复重新读取权威记录,不能从错误返回值推断一定未提交。
正常跳过表示没有业务值,可以正常结束运行。可靠存储或编码失败仍是失败,即使错误原因链包含 pulse.ErrSkipped,也不能降为跳过。
版本与范围
本套参考以目标 Durable v0.1.0 为 API 基线,依赖 Pulse v0.5.0,要求 Go 1.26 或更高版本。这是发版准备,不代表已发布:tag 状态以 GitHub Releases 为准,相应 tag 发布前安装命令尚不可用。独立后端的三 tag 命名见安装,完整用法见 SQLite 与 PostgreSQL。历史性能页面保留各自标注的测量版本。
支持普通值、受管流、显式状态、静态子图,以及内置 Retry 和消息预算。MemoryStore 只提供进程内协议;文件 Store 面向本机单宿主。宿主可通过切面与 Cancel/Resume组合审批等待及按轮工具调用;内置唤醒服务、分布式运行管理、deterministic replay 和外部副作用 exactly-once 不在当前实现内。
下一步
检查运行参数时阅读执行契约;实现后端或 Codec 时阅读数据模型。已有错误时先按错误处理分类,再决定恢复或创建新的业务运行。