# A3S Flow > A3S Flow is a durable workflow engine for Rust. It stores run state in event history and resumes after process restarts or worker replacement. ## 文档 - [跑通第一个持久工作流](https://a3s-lab.github.io/Flow/guide/index.md): 在内存存储中运行一个两阶段工作流,检查快照与历史,再决定怎样接入持久存储。 - [运行时边界](https://a3s-lab.github.io/Flow/guide/runtime-contract.md): 把确定性工作流决定与至少一次交付的外部步骤分开,并为重放保留稳定身份。 - [重试与等待](https://a3s-lab.github.io/Flow/guide/retries-and-waits.md): 配置持久重试、确定性退避、失败后的工作流分支和不占用 worker 的定时等待。 - [信号与 Hook](https://a3s-lab.github.io/Flow/guide/signals-and-hooks.md): 用命名信号接收业务消息,用 Hook 接收带令牌的外部回调,并处理重复投递、撤回和审计信息。 - [取消与清理](https://a3s-lab.github.io/Flow/guide/cancellation.md): 区分清理式取消和立即终止,让等待、重试、Hook 与子工作流在取消过程中保持可恢复。 - [执行模型](https://a3s-lab.github.io/Flow/concepts/execution-model.md): 理解事件历史、快照投影、确定性命令、乐观并发和至少一次步骤交付怎样组成一次持久运行。 - [持久原语](https://a3s-lab.github.io/Flow/concepts/durable-primitives.md): 逐项说明步骤、批次、重试、等待、信号、Hook、进度、子操作和续段在历史中保存什么。 - [工作流图](https://a3s-lab.github.io/Flow/concepts/workflow-dag.md): 导入 JSON 或 YAML 图,校验节点、边与容器作用域,并生成确定性执行顺序和语义摘要。 - [子工作流](https://a3s-lab.github.io/Flow/concepts/child-workflows.md): 启动单个或批量第一类子运行,处理跨事件流恢复、结果顺序、深度限制和取消传播。 - [存储与迁移](https://a3s-lab.github.io/Flow/operations/persistence.md): 选择内存、JSONL、SQLite 或 PostgreSQL 存储,执行前向迁移、历史保留和备份恢复。 - [Worker 与发布](https://a3s-lab.github.io/Flow/operations/production.md): 组装任务管理、调度器、精确版本路由、观察者和安全停机,并用故障演练验证恢复能力。 - [升级到 1.0](https://a3s-lab.github.io/Flow/operations/upgrading-to-v1.md): 从受支持的 0.x 版本升级持久历史与 SQL 结构,安排运行版本准入、验证和基于备份的回滚。 - [原生 TypeScript](https://a3s-lab.github.io/Flow/runtimes/native-typescript.md): 让 Rust 宿主编译和调用 TypeScript 工作流,同时保留 Flow 的历史、调度、Worker 和生命周期权威。 - [公共 API](https://a3s-lab.github.io/Flow/reference/api.md): 按引擎、运行时、存储、任务、观察、图文档和错误类型查找 A3S Flow 1.1 的稳定入口。 - [React 组件与 Hook](https://a3s-lab.github.io/Flow/reference/react.md): 在 React 中使用节点卡片、配置面板和 useA3SFlowNode 管理工作流节点。 - [Vue Hook](https://a3s-lab.github.io/Flow/reference/vue.md): 在 Vue 中使用 useA3SFlowNode 管理 manifest、节点配置和展示状态。 - [自定义节点](https://a3s-lab.github.io/Flow/reference/custom-nodes.md): 注册宿主节点,用 A3S UI 渲染配置表单,并在发布前核对执行能力。 - [a3s-flow CLI](https://a3s-lab.github.io/Flow/reference/cli.md): 使用命令行查询节点清单、创建节点、校验工作流、编译执行顺序并生成语义摘要。 - [a3s-flow Skill](https://a3s-lab.github.io/Flow/reference/agent-skill.md): 安装并调用随前端包发布的 A3S Flow Skill,让编码 Agent 按真实节点清单创建和校验工作流。 - [示例索引](https://a3s-lab.github.io/Flow/reference/examples.md): 按持久步骤、等待回调、恢复发布、存储任务、观察和 TypeScript 分类运行仓库中的完整示例。 ## 节点 - [节点目录](https://a3s-lab.github.io/Flow/nodes/index.md): 查看 A3S Flow 1.1 的 18 个作者节点、两个内部容器入口,以及节点卡片和配置面板。 - [开始节点](https://a3s-lab.github.io/Flow/nodes/start.md): 配置工作流身份、输入结构、运行入口和重复启动保护。 - [条件分支节点](https://a3s-lab.github.io/Flow/nodes/condition.md): 用确定性表达式读取工作流数据并选择两条控制分支。 - [执行任务节点](https://a3s-lab.github.io/Flow/nodes/step.md): 调用宿主任务,配置输入、重试和可恢复失败分支。 - [批量任务节点](https://a3s-lab.github.io/Flow/nodes/batch.md): 声明一组稳定任务成员,并分别配置输入、重试和失败策略。 - [定时等待节点](https://a3s-lab.github.io/Flow/nodes/wait.md): 把运行暂停到固定 UTC 时间,并在调度器唤醒后继续。 - [回调与审批节点](https://a3s-lab.github.io/Flow/nodes/hook.md): 等待一次人工审批或 webhook 回调,并处理接收与关闭状态。 - [信号等待节点](https://a3s-lab.github.io/Flow/nodes/signal.md): 等待具名外部消息,并按到达顺序消费同名信号。 - [外部任务引用节点](https://a3s-lab.github.io/Flow/nodes/child-operation.md): 保存其他系统拥有的长任务身份和业务元数据。 - [子工作流节点](https://a3s-lab.github.io/Flow/nodes/child-workflow.md): 启动一个具有独立历史和终态的子工作流,并配置父运行停止时的处理方式。 - [子工作流批次节点](https://a3s-lab.github.io/Flow/nodes/child-workflows.md): 一次声明最多 64 个子工作流,并按稳定成员顺序收集终态。 - [后续运行节点](https://a3s-lab.github.io/Flow/nodes/continue-as-new.md): 关闭当前历史段,并使用新输入创建同一定义的后续运行。 - [运行进度节点](https://a3s-lab.github.io/Flow/nodes/progress.md): 写入带稳定身份的里程碑、计数、说明和结构化详情。 - [成功结束节点](https://a3s-lab.github.io/Flow/nodes/complete.md): 计算最终输出并提交成功终态。 - [失败结束节点](https://a3s-lab.github.io/Flow/nodes/fail.md): 生成可操作的错误说明并提交失败终态。 - [取消运行节点](https://a3s-lab.github.io/Flow/nodes/cancel.md): 在持久取消请求的清理工作完成后提交取消终态。 - [超时结束节点](https://a3s-lab.github.io/Flow/nodes/timeout.md): 保存已超过的绝对截止时间和业务原因,并提交超时终态。 - [遍历集合容器](https://a3s-lab.github.io/Flow/nodes/iteration.md): 为集合成员建立独立子画布作用域,并说明内部入口、父子关系和连线规则。 - [条件循环容器](https://a3s-lab.github.io/Flow/nodes/loop.md): 使用确定性条件和次数上限反复执行一个子画布作用域。 ## Playground - [工作流 Playground](https://a3s-lab.github.io/Flow/playground/index.md): 从多种业务工作流示例进入 A3S Flow 设计器,使用真实节点、配置表单与图编译器编辑和检查工作流文档。