永続的なイベント配信
ファンアウトを開始する前にイベントがPostgreSQLへ書き込まれ、その後少なくとも1回配信されます。オペレーターは失敗した配信を手動で再試行したり、イベント全体をリプレイしたりできます。
Sparrowは、複数のHTTPコンシューマーにイベントを公開する必要があるシステム向けの、オープンソースのセルフホスト型Webhook配信サーバーです。アプリケーションはイベントタイプとWebhookを登録し、REST APIを通じてイベントの発生を送信すると、Sparrowが一致する購読先へ振り分けます。
サーバーは配信開始前にイベントをPostgreSQLへ永続化し、送信リクエストに署名し、配信結果を記録して、バックオフを伴う分類済みリトライを適用します。配信サービス、ワーカーパイプライン、組み込みダッシュボード、APIドキュメントを1つのGoバイナリに統合し、必須データベースとしてPostgreSQLを使用します。
ファンアウトを開始する前にイベントがPostgreSQLへ書き込まれ、その後少なくとも1回配信されます。オペレーターは失敗した配信を手動で再試行したり、イベント全体をリプレイしたりできます。
5xxレスポンス、タイムアウト、429レスポンス、接続拒否などのリトライ可能な失敗と、多くの4xxエラー、DNSエラー、TLSエラーなどの恒久的な失敗を区別します。
すべての配信はStandard Webhooksの規約に従って署名されます。デフォルトはHMAC-SHA256で、個別のWebhookでは代わりにEd25519を使用できます。シークレットはAES-256-GCMでエンベロープ暗号化され、保存時に保護されます。
配信パイプラインは、購読ごとのGoテンプレート変換、Webhookごとのレート制限、Webhookの健全性追跡、配信試行の監査証跡に対応します。
OpenTelemetryトレースはキュージョブを通じて伝播し、構造化ログとメトリクスはOTLP経由でエクスポートできます。組み込みダッシュボードには配信ログとWebhookごとの健全性が表示されます。
サーバーは、UIを組み込んだ1つのGoバイナリとして配布され、コアデータベースの依存先はPostgreSQLのみです。Riverワーカーは同じデータベースを使用し、マイグレーションは起動時に自動実行されます。
プロダクトやバックエンドは、`order.created`や`invoice.created`などのイベントを一度公開し、別個の配信キューを実装することなく、Sparrowに一致するすべてのコンシューマーWebhookへ振り分けさせることができます。
チームは、スコープと有効期限を設定したコンシューマーポータルのリンクを公開できます。個々のコンシューマーは、そのリンクからエンドポイントを登録し、イベントカタログを閲覧し、自分の配信ログを確認または再試行できます。管理者APIキーを渡す必要はありません。
オペレーターは、配信記録、エラーカテゴリ、Webhookの健全性、トレース、リプレイまたは再試行の制御機能を使って、利用できない、または設定に問題のある受信側を診断し、配信を復旧できます。
ソースは検証済みのStripeまたはGitHub Webhookを公開し、recipeおよびsinkサテライトによって、イベントをSlack、Discord、PagerDuty、ntfy、ClickHouse、SMTP、S3/MinIO、OTLPロギングなどの宛先に接続できます。
開発者は、統合作業中にCLIリスナーまたはwebhook.siteを実行し、署名付きエンベロープを確認し、ブラウザでrecipe変換をプレビューし、REST APIまたは組み込みドキュメントを使ってワークフローをテストできます。
Sparrowのドキュメント化されたローカルセットアップでは、Docker Composeを使用します。Composeファイルをダウンロードし、`docker compose up -d`を実行して、`http://localhost:8080`でWeb UIを開きます。ComposeセットアップにはPostgreSQLが含まれており、起動時にマイグレーションが自動実行されます。本番環境では、ローカル評価用のデフォルト値ではなく、実際の暗号化キーとデータベースを設定するよう、インストールドキュメントで説明されています。
イベントタイプを登録し、1つ以上のイベント名を指定してWebhookを登録した後、関連するコンシューマーエンドポイントにイベントをPOSTします。Sparrowはイベントを永続化し、購読先を照合して配信を作成し、署名付きHTTP POSTリクエストをバックグラウンドで送信します。配信ステータスはAPIまたは組み込みUIで確認できます。
Sparrowはイベントを少なくとも1回配信します。失敗した配信は、サーバーエラー、タイムアウト、レート制限、接続拒否、DNSエラー、TLSエラーなどのカテゴリに分類されます。リトライ可能な失敗には指数バックオフが使用され、恒久的な失敗は停止します。オペレーターは配信を手動で再試行したり、イベントをリプレイしたりすることもできます。
デフォルトでは、配信にWebhookごとのシークレットを使用したHMAC-SHA256とStandard Webhooksヘッダーが使われます。代わりにEd25519を使用することもでき、その場合、受信側は公開鍵で検証します。WebhookシークレットはAES-256-GCMでエンベロープ暗号化され、保存時に保護されます。
SparrowはSSRF対策として、デフォルトでプライベートIPアドレスとメタデータIPアドレスをブロックします。ローカル評価では、`SPARROW_ALLOW_PRIVATE_NETWORKS=true`を設定してプライベートネットワークへの配信を有効にできます。ドキュメントには、評価用Composeファイルではこの設定がすでに有効になっていることも記載されています。
ByteAskは、C/C++向けのターミナル起点AIコーディングエージェント。リポジトリを編集し、コンパイラやデバッガ、サニタイザ、テストで変更を検証してから差分を表示。無料枠あり。
Epheremは、Lovable、Bolt、v0、Replit、Cursor、Claude CodeなどのAIコーディングツールで構築したWebアプリ向け静的セキュリティスキャナーです。アプリを実行せず、ソースファイルと依存関係を検査し、一般的なセキュリティミスを分類して修正案を提示します。
CreateOS Sandboxは、FirecrackerマイクロVM上でコードやエージェントのワークロードを実行できる分離型コンピュート環境です。SDK、CLI、MCPで制御可能。
GitBotは、Claude Code、Codex、OpenCodeを活用した再利用可能なコーディングボットを作成できるローカルブラウザワークスペースです。永続スレッドと権限設定で、リポジトリ内の作業を効率化します。
hobは、エージェントのセッション、ターミナル、履歴、後続作業を、既存のツールやプロバイダーに合わせて整理できる独立したコーディングエージェント向けワークスペース。ローカルでの制御を重視する開発者に最適。
Ably Chatは、カスタムのリアルタイムチャットアプリを構築できるチャットAPIプラットフォームです。ルーム単位のメッセージ、入力中表示、プレゼンス、リアクション、メッセージ更新に対応し、利用量ベースの料金も選べます。