图原生控制流
线性、排他、包容、并行、循环、等待与子图,都由同一套清晰图模型表达。
不只是把任务连起来,更要在并发、等待、重启和部分失败中保持流程状态正确。
线性、条件、并行、循环、等待与子图都落在同一张有向图上,复杂流程仍然能够审查与推演。
Token、变量、等待点、重试次数和补偿栈均可持久化,进程重启后从安全位置继续执行。
通过 Rust Trait 注册 Service、Handler、条件与脚本,不要求业务代码继承框架或依赖反射。
所有入口最终编译成不可变执行图,运行实例只保存动态状态,让定义演进与实例运行彼此分离。
核心运行时不绑定 Web 框架、数据库或脚本语言。你可以从内存模式开始,再组合 PostgreSQL、SQLite、调度器、工作流与可观测模块。
深入了解核心架构 →把分散在业务代码中的流程控制、错误恢复和人工协作,收敛成可复用的基础设施。
凡是能够表达为节点、连接、条件和状态的业务过程,都可以被编排、观测与恢复。
风控路由、库存与支付并行、物流串联,失败后自动补偿。
申请、认领、会签、委托、退回、加签和超时升级。
用 Handler 适配已有 Service、HTTP、SQL、MQ 与领域接口。
分片处理集合,限制并发度,汇聚结果后继续下游任务。
记录成功副作用,失败时按逆序执行补偿任务。
串联模型、工具和人工确认,并持久化每一步上下文。
Rust Builder、JSON 和 YAML 最终都会经过同一个编译器,生成不可变执行图。
let source = std::fs::read_to_string("flows/order.json")?;
let spec = GraphSpec::from_json_strict(&source)?;
let graph = compile(spec)?;
let mut instance = engine.create_instance(&graph, variables);
engine.run(&graph, &mut instance, RunOptions::default()).await?;