Skip to content

介绍 ​

Pulse 是用于 Go 程序的数据驱动工作流执行库。你把业务拆成节点,声明每个节点需要哪些数据、会产生哪些数据,Pulse 根据这些声明推进执行,并提供结构、状态和事件视图。

本指南面向需要在现有应用中组织多步骤处理的 Go 开发者。开始前,你只需要了解 Go 函数、泛型和 context.Context。

一个典型场景 ​

假设应用要接收一份文档,提取内容,再分别生成摘要和标签,最后组合报告。摘要和标签都依赖提取结果,二者可以并行工作;报告要等待两路都明确提供结果或跳过。

mermaid
flowchart LR
    source[文档输入] --> extract[提取内容]
    extract --> summary[生成摘要]
    extract --> tags[生成标签]
    summary --> report[组合报告]
    tags --> report

在 Pulse 中,每条数据由 Key[T] 标识。提取节点声明输出内容,摘要与标签节点声明读取同一个内容 Key,依赖关系便随之确定。你无需另写一份节点连线表。

工作流定义可以长期保留。每次请求创建一份新的 Execution,提供本次输入并等待结束;不同执行的运行状态彼此独立。业务函数捕获的共享对象、客户端和可变数据仍由应用管理。

你能使用哪些能力 ​

能力用途文档
输入、输出和类型化数据定义宿主与工作流的接口输入与输出
分支、并行和汇聚组合多路处理,明确缺值策略分支与汇聚
重试、超时、并发额度控制节点执行和取消重试与取消
静态子图复用完整流程,通过端口连接组合子图
channel 流在同一次执行中持续传递数据流式处理
YAML 装配将拓扑配置与 Go 处理函数分开YAML 装配
事件、日志和快照查询进度、定位故障、接入现有日志图观测

核心包只依赖标准库。observe 与 yaml 是可选包,按需引入。需要跨进程恢复时,可使用独立的 pulse-durable;它提供本机检查点存储和恢复,持久等待与分布式运行管理尚未实现。

怎样阅读本文档 ​

第一次使用,依次阅读安装、快速开始和核心概念。快速开始包含完整程序、运行命令和预期结果,概念页解释程序背后的数据模型。

已经有一个工作流,从使用指南选择当前任务。各篇解释操作方式、需要声明的接口以及常见错误,不要求从头读完整套文档。

需要核对具体保证,查看参考。生命周期、错误分类、检查点协议和版本差异集中在那里。源码中的 godoc 提供每个导出符号的签名与契约。

准备参与项目设计,阅读设计理念和设计资料。这些材料解释取舍与历史,不作为完成第一次运行的前提。

文档版本 ​

本文档以 v0.5.1 为 API 基线,包含可复用定义与独立执行的完整对象模型。安装页说明如何固定安装版本、选择后续开发改动、试用尚未合并的本地源码,以及核对实际依赖。

下一步:安装 Pulse。

开发版 API 文档 · Go 1.26+ · MIT