可在 Serverless、服务器或边缘环境运行的持久化工作流引擎,支持带步骤的函数与 AI 工作流。
- Star
- 4,591
- Fork
- 226
- 未关闭 Issue
- 471
- 最近提交
- 2小时前
这是什么?
Restate 是一个用于构建应用的平台,即使服务器、进程或网络出现故障,应用也能保持正确运行。它为函数调用、Promise、定时器和键值状态等常见构件提供了持久化版本,开发者可以编写普通代码,重试与恢复由平台处理。
核心机制包括持久化执行:失败的任务会被重试,且已完成的步骤不会重复执行。服务之间的通信提供 exactly-once 语义,适用于请求-响应调用、单向消息和定时任务。每个服务实例拥有独立的键值状态,并与执行进度一同持久化。长时间运行的处理函数在等待 Promise 时会挂起,Promise 完成后再恢复,这一点很适合 Serverless 部署。
项目包含服务端和 CLI,并提供 TypeScript、Java/Kotlin、Python、Go 和 Rust 的 SDK。UI 和 CLI 可用于查看服务与调用情况,处理函数之间的交互会自动生成 OpenTelemetry 追踪数据。
核心功能
- 01持久化执行,失败后重试且不重复执行已完成的步骤
- 02服务间调用、单向消息和定时任务提供 exactly-once 通信语义
- 03持久化 Promise 与定时器,可跨故障和重启恢复
- 04每个服务实例拥有独立键值状态,并与执行进度一同持久化
- 05提供 TypeScript、Java/Kotlin、Python、Go、Rust 等 SDK
- 06提供 UI 和 CLI 查看调用情况,并生成 OpenTelemetry 追踪
适用场景
- 构建需要在故障后继续执行的持久化 AI Agent
- 以可靠重试的方式编排微服务
- 编写等待定时器或外部 Webhook 的代码化工作流
- 在 Serverless 函数中可靠地处理事件
快速上手
- 1
通过 Homebrew 安装服务器
brew install restatedev/tap/restate-server - 2
通过 Homebrew 安装命令行工具
brew install restatedev/tap/restate - 3
通过 npx 运行服务器
npx @restatedev/restate-server
使用前须知
- 预编译二进制文件仅提供 macOS 和 Linux 版本。
- 无法从项目元数据中确定其许可证。
标签
常见问题
- restate 是什么?
- Restate 是一个用于构建高可靠应用的平台,通过持久化执行、可靠通信和一致状态抵御基础设施故障。 Restate 是一个用于构建应用的平台,即使服务器、进程或网络出现故障,应用也能保持正确运行。它为函数调用、Promise、定时器和键值状态等常见构件提供了持久化版本,开发者可以编写普通代码,重试与恢复由平台处理。
- restate 可以免费使用吗?用的什么许可证?
- restate 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- restate 还在维护吗?
- 活跃维护中。restate 最近一次提交是在 2026年10月22日。
- restate 适合用来做什么?
- 构建需要在故障后继续执行的持久化 AI Agent 以可靠重试的方式编排微服务 编写等待定时器或外部 Webhook 的代码化工作流 在 Serverless 函数中可靠地处理事件
- restate 怎么安装和运行?
- 通过 Homebrew 安装服务器: brew install restatedev/tap/restate-server 通过 Homebrew 安装命令行工具: brew install restatedev/tap/restate 通过 npx 运行服务器: npx @restatedev/restate-server
- 在哪里获取 restate?
- 源代码和安装说明在 GitHub 上:https://github.com/restatedev/restate
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
5970379GoOther更新于 13小时前
开源的持久化执行引擎,用于编排微服务、AI Agent 和自适应工作流图,支持多语言 Worker。
3.2万1036JavaApache-2.0更新于 前天
Temporal 是一个持久化执行平台,服务端可可靠地运行工作流并自动重试失败的操作。
2.4万2030GoMIT更新于 10小时前
面向后台任务、AI 智能体和持久化工作流的编排引擎,支持 Python、TypeScript、Go 和 Ruby。
8158523GoMIT更新于 前天
受 Erlang/OTP 启发的 Go 参与者模型框架,用于构建可监督、网络透明的分布式系统。
4681191GoMIT更新于 13天前
Apache Dubbo 的 Java 实现,一个用于构建 RPC 通信与微服务的框架。
4.2万2.6万JavaApache-2.0更新于 3天前