dbos-inc/dbos-transact-ts
Database-Backed Durable TypeScript Workflows
何を解決するか
DBOS Transact は、別途の重いオーケストレーションサーバーを必要とせずに、TypeScriptプログラムの信頼性とフェイルセーフ性を実現する方法を提供します。サーバーのクラッシュや長時間実行プロセスの中断時に、複雑な状態管理や復旧ロジックを扱う問題を解決します。たとえば、決済サービスやデータパイプラインなどです。
動作方法
DBOS は Postgres データベースを使ってプログラムの状態をチェックポイント化します。通常の関数を「ワークフロー」や「ステップ」として登録することで、プログラムが失敗した場合、再起動時に最後に完了したステップから自動的に再開されます。外部のタスクキューまたはオーケストレーターを必要とせず、耐久性ロジックをライブラリ内に直接実装しています。
対象ユーザー
金融取引の管理、データパイプライン、非決定的または不安定な外部APIに依存するAIエージェントなど、高い信頼性を必要とするアプリケーションを開発する開発者向けです。
特徴
- 耐久性のあるワークフロー: エラー後に Postgres の最後のチェックポイントから自動的に実行を再開します。
- 耐久性のあるキュー: Postgres でバックアップされた、フロー制御、レート制限、重複排除機能付きのバックグラウンドタスク実行。
- プログラムによる管理: Postgres テーブルを介して、失敗したワークフローを直接照会、一時停止、再開、分岐可能。
- 正確に一度だけの処理: 重複処理防止のための idempotency key を組み込みサポート。
- 耐久性のあるスケジューリング: cronベースのスケジューリングと、再起動後も保持される長期的な「耐久性のあるスリープ」をサポート。
- 耐久性のある通知: ワークフローの一時停止や再開に使用する通知の送受信において、正確に一度だけのセマンティクスを提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト