dbos-inc/dbos-transact-ts

Database-Backed Durable TypeScript Workflows

何を解決するか

DBOSは、信頼性の高いアプリケーションの作成を簡素化し、永続的なワークフローとキューを提供します。サーバーのクラッシュや長時間実行のデータパイプラインでの中断などの障害処理において、複雑な状態管理や手動の回復ロジック、または重量級な外部オーケストレーションサービスの必要性を排除します。

動作方法

DBOSは、Postgresデータベースを使用してプログラムの状態をチェックポイントする軽量なライブラリです。開発者は通常のTypeScript関数に「ワークフロー」や「ステップ」としての注釈を付与します。プログラムが失敗した場合、DBOSはPostgresに保存された最後の完了ステップから自動的に実行を再開します。また、追加のインフラストラクチャを必要とせずに、Postgresベースのバックグラウンドタスクキュー、イベント処理、スケジューリング、通知のためのプリミティブも提供します。

対象ユーザー

支払いシステム、障害耐性のあるデータパイプライン、不安定で非決定論的なAPIに依存するAIエージェントなど、障害を信頼性を持って処理する必要があるサービスを開発している開発者向けに設計されています。

特徴

  • 永続的ワークフロー: エラー発生後に、最後に完了したステップから自動的に実行を再開します。
  • 永続的キュー: Postgresのみを使用して、フロー制御、レート制限、重複排除を備えたバックグラウンドタスク管理が可能。
  • プログラムによる管理: DBOSクライアントを通じて、失敗したワークフローを照会、一時停止、再開、フォークできる機能。
  • 正確に一度の処理: idempotencyキーを使用して、WebhookやKafkaメッセージなどのイベントが正確に一度だけワークフローを起動することを保証。
  • 永続的なスケジューリング: cronベースのスケジューリングと、再起動後も保持される長期的な「永続的スリープ」をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト