Skip to content

参考概览 ​

本部分用于核对 API、持久记录和错误语义。第一次使用请从指南开始;参考页不替代快速开始与恢复教程的完整操作过程。

按问题查阅 ​

要核对的问题参考页
Run 与 Resume 的前置条件是什么?执行契约
修改函数、图、输入或 Codec 后能否恢复?执行契约
什么时候发出恢复事件?执行契约
节点成果、子图作用域与 Retry 尝试如何关联?数据模型
ready、skipped、nil 与零字节编码如何区分?数据模型
Store 的独占与 CAS 要求是什么?数据模型
Busy、Conflict 和 CheckpointError 如何处理?错误处理
保存已写入却报错时怎么办?错误处理

三条核心规则 ​

  1. 可靠确认后发布:普通成果在完整节点链(包括切面)完成后确认;受管流的追加和消息事务有独立增量边界。每次都在存储确认后发布对应成果。
  2. 恢复有效成果:有效作用域中的已确认节点不重新进入,未确认节点从函数开头执行。已失败父尝试中的子成果不能用于新的尝试。
  3. 以重读为准:保存返回错误可能发生在提交之后。停止本次运行,后续恢复重新读取权威记录,不能从错误返回值推断一定未提交。

正常跳过表示没有业务值,可以正常结束运行。可靠存储或编码失败仍是失败,即使错误原因链包含 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 时阅读数据模型。已有错误时先按错误处理分类,再决定恢复或创建新的业务运行。

目标 v0.1.0 · Go 1.26+ · Pulse v0.5.0 · 发布状态见 GitHub Releases · MIT