リトライとフロー制御に対応し、サーバーレス、サーバー、エッジでステップ関数、バックグラウンドジョブ、AIワークフローを実行する耐久性の高いワークフローエンジン。
- スター
- 4,591
- フォーク
- 226
- 未解決の Issue
- 471
- 最終コミット
- 2 時間前
これは何?
Restateは、サーバー、プロセス、ネットワークに障害が発生しても正常に動作し続けるアプリケーションを構築するためのプラットフォームです。関数呼び出し、promise、タイマー、key-value stateといった一般的な構成要素を耐障害性の高い形で提供するため、開発者は通常のコードを書きながら、リトライや復旧をプラットフォームに任せられます。
主な仕組みとして、失敗した処理を再試行し、完了済みのステップを再実行しないdurable executionと、リクエスト・レスポンス呼び出し、一方向メッセージ、スケジュールされたタスクを対象とするexactly-onceセマンティクスのサービス間通信を備えています。各サービスエンティティは、実行の進捗とともに永続化される、分離されたkey-value stateを持ちます。長時間実行されるハンドラーはpromiseの完了を待つ間サスペンドし、解決時に再開するため、serverless環境に適しています。
このプロジェクトはサーバーとCLIとして提供され、TypeScript、JavaおよびKotlin、Python、Go、Rust向けのSDKが用意されています。UIとCLIでサービスや呼び出しを調査でき、ハンドラー間のやり取りについてはOpenTelemetryトレースが生成されます。
主な機能
- 01完了済みのステップを再実行せずに失敗を再試行するdurable execution
- 02呼び出し、一方向メッセージ、スケジュールされたタスクに対応するexactly-onceのサービス間通信
- 03障害や再起動後も維持されるdurable promiseとタイマー
- 04実行の進捗とともに永続化される、サービスエンティティごとの分離されたkey-value state
- 05TypeScript、Java/Kotlin、Python、Go、Rust向けのSDK
- 06呼び出しを調査できるUIとCLI、およびOpenTelemetryトレース
ユースケース
- 障害後に処理を再開する必要がある、耐障害性の高いAIエージェントの構築
- 信頼性の高いリトライと補償ロジックを備えたマイクロサービスのオーケストレーション
- タイマーや外部webhookを待機するworkflow-as-codeの実行
- serverless関数でのイベントの信頼性の高い処理
クイックスタート
- 1
Homebrewでサーバーをインストールする
brew install restatedev/tap/restate-server - 2
HomebrewでCLIをインストールする
brew install restatedev/tap/restate - 3
npxでサーバーを実行する
npx @restatedev/restate-server
使う前に知っておきたいこと
- ビルド済みバイナリはmacOSとLinux向けのみ提供されています。
- プロジェクトのメタデータからライセンスを特定できませんでした。
トピック
よくある質問
- restate とは?
- Restateは、インフラ障害が発生しても処理を継続できる、耐障害性の高いアプリケーションを構築するためのランタイムです。 Restateは、サーバー、プロセス、ネットワークに障害が発生しても正常に動作し続けるアプリケーションを構築するためのプラットフォームです。関数呼び出し、promise、タイマー、key-value stateといった一般的な構成要素を耐障害性の高い形で提供するため、開発者は通常のコードを書きながら、リトライや復旧をプラットフォームに任せられます。
- restate は無料で使えますか?ライセンスは?
- restate は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- restate は今もメンテナンスされていますか?
- 活発にメンテナンス中。restate の最終コミットは 2026年10月22日 です。
- restate は何に使えますか?
- 障害後に処理を再開する必要がある、耐障害性の高いAIエージェントの構築 信頼性の高いリトライと補償ロジックを備えたマイクロサービスのオーケストレーション タイマーや外部webhookを待機するworkflow-as-codeの実行 serverless関数でのイベントの信頼性の高い処理
- restate のインストール方法は?
- Homebrewでサーバーをインストールする: brew install restatedev/tap/restate-server HomebrewでCLIをインストールする: brew install restatedev/tap/restate npxでサーバーを実行する: npx @restatedev/restate-server
- restate はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/restatedev/restate
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
マイクロサービス、AIエージェント、適応型ワークフローグラフをオーケストレーションする、複数言語のワーカーに対応したオープンソースの耐障害性実行エンジン。
Temporalは、アプリケーションのWorkflowを実行し、失敗したステップを自動で再試行する耐障害性の高い実行プラットフォームです。
バックグラウンドタスク、AIエージェント、永続ワークフローをオーケストレーションするエンジン。Python、TypeScript、Go、RubyのSDKを備え、永続化レイヤーにPostgresを採用。
Erlang/OTPに着想を得たGo向けアクターモデルフレームワーク。監視機能とネットワーク透過性を備えた分散システムを構築できます。
サービス通信、ディスカバリー、トラフィック管理を実現するRPC・マイクロサービスフレームワーク、Apache DubboのJava実装。