示例索引
仓库的 examples/ 目录包含 31 个可运行程序。建议从 sequential_steps 开始,再根据生产需求选择同类示例。示例默认使用临时资源或明确的环境变量,不会自动连接生产服务。
运行准备
1.0 最低需要 Rust 1.88。SQL 示例首次构建会编译对应驱动,耗时会比内存示例长。
步骤与业务编排
阅读顺序建议采用 sequential_steps、retry_backoff、recoverable_step_failure、compensation。这样可以依次看清步骤成功、重投、耗尽和补偿边界。
等待、信号与回调
要实现 HTTP 回调入口,先运行 hook_approval 看令牌解析结果,再读信号与 Hook里的可靠重投规则。示例只演示 Flow 调用,不提供 HTTP 服务或鉴权。
长运行、发布与父子关系
发布相关示例使用内存存储突出契约。生产环境还要按Worker 与发布配置精确运行版本路由。
本地持久化
这些示例会在临时目录或临时文件中工作并清理资源。接真实路径前,先读存储与迁移的所有者与备份要求。
PostgreSQL
PostgreSQL 示例只在设置 A3S_FLOW_POSTGRES_URL 后连接数据库。
使用专门测试数据库。示例可能创建或迁移 Flow 表,不能指向生产实例。
任务与 Worker
任务重试和步骤重试位于不同层。先看 task_queue_durability 的租约恢复,再看 boot_task_policy 的宿主策略。
观察与审计
观察者在事件提交后运行。示例故意不让观察结果参与工作流决定。
原生 TypeScript
先安装编译器并确保 Bun 可用。
未设置编译器环境变量时,两个示例会输出说明并安全跳过。生产配置见原生 TypeScript。
工作流图导入
workflow_dsl_import 接收 YAML 文件路径,输出应用信息、版本分类、节点数、作用域和执行摘要。
图导入只校验结构并生成计划,不执行节点。宿主节点绑定见工作流图。
建议的生产验证路径
准备接入真实业务时,可以按下面的顺序把示例替换成自己的后端。
- 用
sequential_steps确认运行时和步骤边界。 - 用目标 SQL 持久化示例确认重启恢复。
- 用
scheduler_worker验证定时任务重复投递。 - 根据入口选择信号或 Hook 示例。
- 用
cancellation验证清理幂等。 - 用任务管理示例替换进程内派发。
- 在与生产相同的存储和队列上注入进程退出。
每次替换一层,保留事件历史和外部幂等记录,出现偏差时更容易定位责任边界。
