UStackUStack
Outpost icon

Outpost

Outpostは、アプリのイベントをWebhookやキュー等へ確実に配信するオープンソース基盤。マネージド/セルフホスト(Go/Docker)対応。

Outpost

Outpostとは?

Outpostは、ユーザーが好む宛先(アウトバウンドWebhookや各種イベント/キューシステムなど)へイベントを配信するオープンソース基盤です。アプリケーションがイベント通知を確実に送信できるように設計されており、自前でWebhook配信ロジックを構築・運用するよりも運用負荷を低減することを重視しています。

Outpostは、Hookdeckのマネージドサービスとして、またはオープンソースコードからセルフホストして利用可能です。主な目的はアウトバウンドイベント配信で、イベントを公開するとOutpostがトピック/サブスクリプションと配信保証を使って設定済み宛先へルーティングします。

主な機能

  • At-least-once配信保証: メッセージをat-least-onceで配信し、イベントの紛失を防ぎます。
  • トピックベースのサブスクリプション: イベントタイプを宛先へマッピングしやすくするパブリッシュ/サブスクライブパターン。
  • 自動/手動リトライ: 自動リトライを設定、またはAPIやユーザーportal経由でリトライをトリガー。
  • 複数配信宛先: Webhook配信に加え、AWS SQS、RabbitMQ、Pub/Sub、EventBridge、Kafkaなど(ページに記載の通り)のイベント宛先をサポート。
  • マルチテナント対応: 単一のOutpostデプロイメントで複数テナントを実行。
  • 開発者portalと宛先コントロール: メトリクス閲覧、イベント宛先の管理、デバッグ、観測。
  • OpenTelemetry対応: OpenTelemetryトレース、メトリクス、ログを含む。
  • 冪等性と配信ヘッダー: 冪等性ヘッダー、タイムスタンプ、署名(署名ローテーション含む)を提供し、オプトアウト機構あり。
  • お好みのデプロイ方法(マネージド/セルフホスト): セルフホスト用GoバイナリまたはDockerイメージで提供;マネージド/セルフホスト共通のOutpostを使用。

Outpostの使い方

  1. デプロイモデルを選択: マネージドサービス(「Get started」)から開始、または提供ディストリビューション(GoバイナリまたはDockerイメージ)でオープンソースのセルフホスト版を実行。
  2. 宛先を定義: 1つ以上の配信ターゲット(例: Webhookエンドポイント、またはキュー/バス宛先)を設定。
  3. トピックとサブスクリプションを設定: イベントトピック(イベントタイプ)と受信する宛先のマッピングを作成。
  4. イベントを公開: Outpost APIでイベント送信、またはOutpostが読み取れるキューへ公開。
  5. 運用とトラブルシューティング: ユーザーportalで配信メトリクス観測、宛先管理、必要時リトライ実行。

ユースケース

  • アプリイベントの確実なアウトバウンドWebhook配信: アプリケーションイベント(例: user.createdorder.created)をat-least-once配信とリトライでWebhook宛先へルーティング。
  • 配信からの分離を図るキュー経由公開: イベントをキューへ公開し、Outpostが読み取ってダウンストリームシステムへ配信。
  • 複数イベント宛先へのファンアウト: 同一/関連トピックをトピック/サブスクリプション設定で異なる宛先(例: Webhook+メッセージキュー/バス)へ送信。
  • マルチテナントイベント配信: 単一Outpostデプロイメントで複数テナントをサービス、テナントごと配信設定を分離。
  • イベント配管のデバッグと運用可視化: portalで宛先ステータスと配信結果を追跡、障害時手動リトライ。

FAQ

  • Outpostを自分で運用可能か、マネージドサービスが必要か? Outpostはマネージドサービスとセルフホスト用オープンソースソフトウェアの両方で利用可能です。

  • Outpostのリトライ処理は? 自動リトライをサポートし、APIやユーザーportal経由の手動リトライも可能。

  • Outpostの配信保証は? ページではメッセージをat-least-onceで配信すると記載。

  • Outpostに可観測性機能はあるか? はい。OpenTelemetry(トレース、メトリクス、ログ)対応と、メトリクス/宛先観測用の開発者portalを提供。

  • OutpostはWebhook配信をどのように署名・保護するか? ページではタイムスタンプと署名ヘッダー(署名ローテーション含む)、冪等性ヘッダー、オプトアウト機構を記載。

代替案

  • 独自のWebhookディスパッチャを構築: カスタムのWebhook配信、リトライ、セキュリティを構築。これにより運用・信頼性の負担がアプリケーション・チームに移る。
  • アウトバウンド配信レイヤーのない汎用イベント/キューシステム: イベントを保存/転送するプラットフォーム(キューやバス)を使用し、Webhook/宛先へのプッシュ用に独自のコンシューマロジックを実装。
  • 他のマネージドWebhook/イベント配信サービス: イベントをWebhookエンドポイントにルーティングするホストサービスを使用。リトライ、配信保証、マルチ宛先配信の扱いで比較。
  • セルフホスト型イベントルーティングコンポーネント: プロデューサーから宛先へのイベントルーティングに特化したオープンソース/セルフホスト可能なコンポーネントを探す。特にサブスクリプション/トピックセマンティクスと運用ツール付きのもの。
Outpost | UStack