信頼性が高く、署名され、追跡可能なイベント。
ポーリングせずに操作の変更を受け取ります。各配信は専用のキューを通過し、試行が保存され、検証可能な署名が付けられます。
27 のドメイン イベント
すべてに * で署名するか、アプリケーションが実際に消費するイベントのみを選択します。
offer.createdoffer.updatedoffer.publishedsegment.createdcoupon.updatedtemplate.updatedschedule.executedmonitor.createdstore.updatedjourney.updatedconversation.closedconversation.replied処理前に検証する
シークレットは一度だけ登場します。タイムスタンプと生の本体に対して HMAC-SHA256 を計算し、一定時間で比較します。
javascript
import { createHmac, timingSafeEqual } from "node:crypto";
const signed = `${timestamp}.${rawBody}`;
const expected = createHmac("sha256", process.env.ACHADU_WEBHOOK_SECRET)
.update(signed)
.digest("hex");
const received = signature.replace("sha256=", "");
if (!timingSafeEqual(Buffer.from(expected), Buffer.from(received))) {
throw new Error("Invalid signature");
}耐久性のある配送
Web プロセスから独立したキュー。
一時的な失敗の場合は最大 6 回の試行。
試行ごとに 12 秒のタイムアウト。
HTTP ステータス、エラー、時刻を含む履歴。
内部宛先とプライベート アドレスはブロックされます。