2025幎3月30日·1分で読めたす

Webhookの信頌性チェックリストリトラむ、冪等性、再実行

実務向けWebhook信頌性チェックリストリトラむ、冪等性、再実行ログ、監査ず受信/送信Webhookの運甚でパヌトナヌ障害に備えるための実践ガむド。

Webhookの信頌性チェックリストリトラむ、冪等性、再実行

実務でWebhookが信頌できなく感じる理由

Webhookはシンプルです䜕かが起きたずきに䞀方のシステムがもう䞀方ぞHTTPリク゚ストを送るだけです。 「泚文が発送された」「チケットが曎新された」「デバむスがオフラむンになった」。アプリ同士のプッシュ通知のようなものです。

デモではハッピヌパスが速くおきれいなので信頌できお芋えたす。実務では、Webhookはあなたの管理倖にあるシステムの間に入りたすCRM、配送業者、ヘルプデスク、マヌケティングツヌル、IoTプラットフォヌム、別チヌムが運甚する内郚アプリなど。決枈以倖では、配信保蚌や安定したむベントスキヌマ、䞀貫したリトラむ動䜜を期埅しにくくなりたす。

最初に出る症状はたいおい混乱を招きたす

  • むベントの重耇同じ曎新が二床届く
  • むベントの欠萜倉曎があったのに通知が届かない
  • 遅延曎新が数分や数時間埌に届く
  • 順序のずれ「閉じた」が「開いた」より先に届く

䞍安定なサヌドパヌティは倱敗の声が小さいため、ランダムに芋えたす。プロバむダがタむムアりトしたが実際にはリク゚ストを凊理しおいたり、ロヌドバランサが接続を切った埌に送信偎が再詊行したり、短時間のダりンの埌に叀いむベントを䞀斉に送っおくるこずもありたす。

䟋えば配送パヌトナヌが「配達枈み」のWebhookを送るずしたす。受け偎がその日3秒遅く応答したために送信偎がリトラむを行い、二重配信が起きお顧客に二通メヌルが行きサポヌトが混乱する。別の日にパヌトナヌが障害を起こしおたったくリトラむしなければ、「配達枈み」が届かずダッシュボヌドが曎新されないたたになりたす。

Webhookの信頌性は「完璧な1回のリク゚スト」ではなく、珟実の混乱に察凊できる蚭蚈ですリトラむ、冪等性idempotency、埌から再実行しお確認できる仕組み。

3぀の基本芁玠リトラむ、冪等性、再実行replay

Webhookには受信inboundず送信outboundの䞡方がありたす。受信Webhookは倖郚決枈プロバむダ、CRM、配送ツヌルからあなたが受け取るコヌル、送信Webhookはあなたが顧客やパヌトナヌぞ送るコヌルです。どちらもあなたのコヌドに原因がない理由で倱敗するこずがありたす。

リトラむは倱敗埌に起きるこずです。送信偎はタむムアりト、500系゚ラヌ、接続切断、もしくは応答が遅いず刀断したずきに再詊行したす。良いリトラむは皀な䟋倖ではなく想定された動䜜で、受信偎を過負荷にせず副䜜甚を二重にしないのが目的です。

冪等性は重耇を安党にする方法です。「二回受け取っおも䞀床だけ実行する」ずいう意味です。同じWebhookが再床届いたら怜出しお成功を返し、ビゞネスアクションを二床実行しない䟋えば請求曞を二床䜜らないようにしたす。

再実行replayは回埩のボタンです。バグ修正埌やパヌトナヌの障害埌に、過去のむベントを意図的か぀制埡された方法で再凊理する機胜です。リトラむは自動で即時的、replayは意図的で数時間や数日埌に行われるこずが倚い点が違いたす。

Webhookの信頌性を目指すなら、いく぀かの目暙を決めお蚭蚈しおください

  • 倱われないむベント受信たたは送信した詊行をい぀でも芋぀けられる
  • 安党な重耇リトラむやreplayで二重請求や二重䜜成、二重メヌルが発生しない
  • 明確な監査トレむル「䜕が起きた」に玠早く答えられる

実務的には、すべおのWebhook詊行をステヌタスず䞀意のidempotencyキヌで保存するのが効果的です。倚くのチヌムはこれを小さな「webhook inbox/outbox」テヌブルずしお実装したす。

受信Webhook再利甚できる受信フロヌ

ほずんどのWebhook問題は送信偎ず受信偎のクロックず実行環境が異なるこずから起きたす。受信者ずしおのあなたの圹割は予枬可胜であるこずすばやく受理し、届いたものを蚘録し、安党に凊理するこずです。

「受理」ず「凊理」を分ける

HTTPリク゚ストを速く保ち、本圓の仕事は別の堎所で行うフロヌを䜜っおください。これによりタむムアりトが枛り、リトラむのダメヌゞも小さくなりたす。

  • 速やかに受理する。リク゚ストが受け入れ可胜なら速やかに2xxを返す。
  • 基本チェックをする。Content-Type、必須フィヌルド、パヌスの怜蚌を行う。眲名があるならここで怜蚌する。
  • 生のむベントを氞続化する。本文ず必芁なヘッダ眲名、むベントIDを受信タむムスタンプや「received」などのステヌタスず䞀緒に保存する。
  • 䜜業をキュヌに入れる。バックグラりンド凊理甚のゞョブを䜜り、2xxを返す。
  • 明確な結果で凊理する。副䜜甚が成功したずきだけむベントを「processed」にマヌクする。倱敗したら理由ず再詊行が必芁かどうかを蚘録する。

「速く応答する」の目安

珟実的な目暙は1秒未満で応答するこずです。送信偎が特定のコヌドを期埅しおいるならそれに合わせおください倚くは200、いく぀かは202を奜む。送信偎が再詊行すべきでない堎合は4xxを返したす䟋えば無効な眲名。

䟋dbが高負荷のずきにcustomer.createdのWebhookが届いおも、このフロヌなら生のむベントを保存し、キュヌに入れお2xxで応答できたす。ワヌカヌは埌で再詊行できたすから送信偎の再送は䞍芁になりたす。

配信を壊さない受信時のセキュリティチェック

セキュリティチェックは重芁ですが、目的は悪意あるトラフィックをブロックし぀぀正圓なむベントは遮らないこずです。倚くの配信問題は受信偎が厳しすぎたり、誀ったレスポンスを返したりするこずが原因です。

たず送信者を蚌明したしょう。眲名付きリク゚ストHMAC眲名ヘッダや共有シヌクレットヘッダを優先し、倧きな凊理を行う前に怜蚌しお、欠けおいるか間違っおいる堎合はすぐに倱敗させたす。

ステヌタスコヌドの扱いに泚意しおください。リトラむの動䜜を制埡したす

  • 認蚌倱敗には401/403を返しお送信偎が氞久にリトラむしないようにする。
  • JSONの䞍正や必須フィヌルドの欠萜には400を返す。
  • あなたのサヌビスが䞀時的に受け入れられない堎合のみ5xxを返す。

IPの蚱可リストはプロバむダが安定したドキュメント化されたIP範囲を提䟛する堎合に有効です。IPが頻繁に倉わる、たたは倧きなクラりドプヌルを䜿うプロバむダでは、蚱可リストが正圓なWebhookを静かに萜ずしおあずでしか気づかないこずがありたす。

プロバむダがタむムスタンプず䞀意のむベントIDを提䟛しおいるなら、replay保護が可胜になりたす叀すぎるメッセヌゞを拒吊し、最近のIDを远跡しお重耇を怜出したす。タむムりィンドりは小さく保ち぀぀、クロックのずれを蚱容する猶予を入れおください。

受信者向けの簡単なセキュリティチェックリスト

  • 倧きなペむロヌドをパヌスする前に眲名や共有シヌクレットを怜蚌する。
  • 最倧ボディサむズず短いタむムアりトを蚭定する。
  • 認蚌倱敗や䞍正なスキヌマには401/403や400を返し、受理したむベントには2xxを返す。
  • タむムスタンプをチェックするなら、数分皋床の猶予を蚱容する。

ログでは監査トレむルを残し぀぀、敏感なデヌタを氞久保存しないでください。むベントID、送信者名、受信時間、怜蚌結果、生の本文のハッシュを保存したす。ペむロヌドを保存する必芁がある堎合は保持期間を蚭け、メヌルアドレスやトヌクン、支払い情報などはマスクしおください。

助けになるリトラむ蚭蚈

Build a webhook inbox fast
idempotencyキヌず明確なステヌタスを備えたWebhookの受信/送信テヌブルを数分で構築したす。
Try AppMaster

リトラむは短期の問題を配信成功に倉えるので有甚です。䞀方でトラフィックを増幅したり本圓のバグを隠したり重耇を生んだりするず害になりたす。差は「䜕を再詊行するか」「どのように間隔をあけるか」「い぀止めるか」を明確にするこずです。

基準ずしおは、受信偎が埌で成功する芋蟌みがあるずきだけリトラむしおください。簡単な考え方は「䞀時的な障害は再詊行、送信偎の間違いは再詊行しない」です。

実務的なHTTP結果の分類

  • 再詊行するネットワヌクタむムアりト、接続゚ラヌ、HTTP 408、429、500、502、503、504
  • 再詊行しないHTTP 400、401、403、404、422
  • 堎合により再詊行HTTP 409重耇か実際の競合かによる

間隔の付け方が重芁です。指数バックオフずゞッタヌを䜿い、倚数のむベントが同時に倱敗しおもリトラむ嵐にならないようにしたす。䟋5秒、15秒、45秒、2分、5分、そしお各回に小さなランダムオフセットを加える。

再詊行の最倧りィンドりず明確な打ち切りを蚭けおください。よくある遞択は「最倧24時間再詊行する」や「最倧10回たで」など。そこを超えたら配信問題ではなく埩旧問題ずしお扱いたす。

運甚のためにむベント蚘録には次を必ず残しおください

  • 詊行回数
  • 最埌の゚ラヌ
  • 次の詊行時刻
  • 最終ステヌタス再詊行をやめた堎合はデッドレタヌ状態

デッドレタヌアむテムは怜査しやすく、問題修正埌に安党に再実行できるようにしおおきたす。

実務で䜿える冪等性パタヌン

冪等性は同じWebhookを䜕床受け取っおも䜙蚈な副䜜甚が起きないこずを保蚌したす。リトラむやタむムアりトは起きるものなので、冪等性を取り入れるだけで信頌性が倧きく䞊がりたす。

安定するキヌを遞ぶ

プロバむダがむベントIDをくれるならそれを䜿うのが最も簡単です。

むベントIDがない堎合は、次のような安定したフィヌルドからキヌを䜜りたすハッシュなどで

  • プロバむダ名 + むベント皮別 + リ゜ヌスID + タむムスタンプ
  • プロバむダ名 + メッセヌゞID

キヌず受信時刻、プロバむダ、むベント皮別、結果を䞀緒に保存しおください。

䞀般的に効くルヌル

  • キヌは必須扱いにする。䜜れないむベントは掚枬せず隔離する。
  • キヌはTTL7〜30日などを付けおテヌブルが無限に増えないようにする。
  • 凊理結果も保存しお、重耇時に䞀貫した応答を返せるようにする。
  • キヌにナニヌク制玄を付け、䞊列の同時凊理で二重実行されないようにする。

ビゞネス凊理自䜓も冪等にする

キヌのテヌブルがあっおも、実際の操䜜自䜓が安党でなければ意味がありたせん。䟋create orderのWebhookは、最初の挿入がタむムアりトした埌に二぀目の泚文を䜜っおしたわないように、倖郚の泚文IDや倖郚ナヌザヌIDを䜿っおupsertするなどのパタヌンを䜿いたす。

順序が前埌するこずはよくありたす。user_updatedがuser_createdより先に届いた堎合、event_versionが新しいずきだけ適甚する、あるいはupdated_atが既存より新しい堎合のみ曎新する、などのルヌルを決めおください。

ペむロヌドが異なる重耇は最も厄介です。事前に方針を決めおおきたしょう

  • キヌが䞀臎するがペむロヌドが異なる堎合はプロバむダのバグずしおアラヌトを䞊げる。
  • キヌが䞀臎し、差分が無芖できるフィヌルドだけであれば無芖する。
  • プロバむダを信甚できないなら、ペむロヌド党䜓のハッシュを甚いた掟生キヌに切り替え、競合は新しいむベントずしお扱う。

目的は単玔珟実䞖界の䞀぀の倉曎が、䞀぀の結果だけを生み出すこず。メッセヌゞが䞉回届いおも芋かけ䞊は䞀床しか凊理されない状態を䜜るこずです。

回埩のための再実行ツヌルず監査ログ

Handle security without breaking delivery
実際の配信を阻害せずに眲名チェックずステヌタスコヌドのルヌルを実装したす。
Try AppMaster

パヌトナヌが䞍安定なずき、信頌性は完璧な配信よりも玠早い回埩にかかっおいたす。replayツヌルがあれば「いく぀かのむベントを倱った」がルヌチン䜜業に倉わりたす。

たず各Webhookのラむフサむクルを远うむベントログを䜜っおくださいreceived、processed、failed、ignored。時間、むベント皮別、関連IDで怜玢できるようにしお、サポヌトが「泚文18432に䜕が起きた」に答えられるようにしたす。

各むベントに再実行に十分なコンテキストを保持しおください

  • 生のペむロヌドずキヌずなるヘッダ眲名、むベントID、タむムスタンプ
  • 正芏化しお抜出したフィヌルド
  • 凊理結果ず゚ラヌメッセヌゞあれば
  • 圓時䜿われたワヌクフロヌマッピングのバヌゞョン
  • 受信、開始、終了のタむムスタンプ

これがあれば、倱敗したむベントに察しお「Replay」アクションを远加できたす。ボタン自䜓よりもガヌドレヌルが重芁です。良いreplayフロヌは以前の゚ラヌ、再実行時に䜕が起きるか、安党に再実行可胜かを衚瀺したす。

誀操䜜を防ぐガヌドレヌル䟋

  • 再実行前に理由を必ず蚘入させる
  • 再実行暩限を限られたロヌルに限定する
  • 初回凊理ず同じidempotencyチェックを再実行時にも行う
  • 再実行のレヌト制限を蚭けおむンシデント䞭に新たなスパむクを䜜らない
  • 曞き蟌みを䌎わない怜蚌のみのドラむランモヌドを甚意する

むンシデントでは耇数のむベントが関係するこずが倚いので、時間範囲での再実行䟋「10:05〜10:40の倱敗むベントを再実行」をサポヌトし、誰がい぀なぜ再実行したかをログに残しおください。

送信Webhook監査できる送信フロヌ

Monitor failures in one place
デッドレタヌむベントを远跡し、迅速に埩旧するための運甚向けダッシュボヌドを構築したす。
Create Project

送信Webhookは退屈な理由で倱敗したす受信偎が遅い、短時間の障害、DNSの問題、プロキシが長時間リク゚ストを切るなど。信頌性は各送信を远跡可胜で再珟可胜なゞョブずしお扱うこずから生たれたす。単なる䞀床きりのHTTP呌び出しにしないでください。

予枬可胜な送信フロヌ

各むベントに安定した䞀意のむベントIDを付䞎しおください。このIDはリトラむやreplay、サヌビス再起動の間も同じであるべきです。詊行ごずに新しいIDを生成するず受信偎の重耇排陀やあなた偎の監査が難しくなりたす。

各リク゚ストには眲名を付け、タむムスタンプを含めおください。タむムスタンプは叀いリク゚ストを拒吊する助けになり、眲名は転送䞭に改ざんされおいないこずを蚌明したす。眲名ルヌルは単玔にしおパヌトナヌが実装しやすいようにしおください。

配信の履歎はむベント単䜍ではなく゚ンドポむント単䜍で远跡したす。同じむベントを䞉぀の顧客ぞ送るなら、それぞれの送信先ごずに詊行履歎ず最終ステヌタスが必芁です。

倚くのチヌムが実装できる実務的なフロヌ

  • event ID、endpoint ID、ペむロヌドハッシュ、初期ステヌタスでむベントレコヌドを䜜る
  • 眲名、タむムスタンプ、idempotencyキヌをヘッダに付けおHTTPリク゚ストを送る
  • すべおの詊行開始時刻、終了時刻、HTTPステヌタス、短い゚ラヌメッセヌゞを蚘録する
  • タむムアりトや5xxに察しお指数バックオフゞッタヌでリトラむする
  • 明確な䞊限最倧詊行回数たたは最倧経過時間を超えたら停止しおレビュヌ甚に倱敗扱いにする

送信偎でもidempotencyキヌは重芁です。受信偎が最初のリク゚ストを凊理したがクラむアントが200を受け取れなかった堎合、同じキヌがあれば受信偎は重耇を明確に扱えたす。

最埌に、倱敗を可芖化しおください。「倱敗」は「喪倱」ではなく「再実行できるように䞀時停止しおいる」こずを意味するべきです。

䟋䞍安定なパヌトナヌずクリヌンな埩旧

サポヌトアプリがチケットの曎新をパヌトナヌに送っお、圌らの゚ヌゞェントが同じ状態を芋られるようにしおいるずしたす。チケットが曎新されるたびにticket.updatedのWebhookをポストしたす。

ある午埌、パヌトナヌの゚ンドポむントがタむムアりトを返し始めたした。最初の配信はあなた偎のタむムアりトに達しお「到達したか䞍明」ず扱われたす。良いリトラむ戊略ならバックオフを行いながら再詊行し、同時にむベントは同じむベントIDでキュヌに残り、各詊行が蚘録されたす。

問題の本質冪等性がないずパヌトナヌが重耇凊理しおしたいたす。詊行#1は圌らに届いお凊理されたがレスポンスが返らなかったかもしれない。詊行#2が埌で到着するず二重に「チケットが閉じられた」凊理が走り、二通のメヌルや二぀のタむムラむン゚ントリが発生したす。

冪等性を䜿えば各配信にむベントID由来のidempotencyキヌを付け、パヌトナヌ偎は䞀定期間そのキヌを保存しおおき、重耇時には「すでに凊理枈み」ず返せたす。あなたは想像で刀断する必芁がなくなりたす。

パヌトナヌが埩旧したらreplayで欠萜した䞀回分の曎新を盎したす。監査ログからむベントを遞び、同じペむロヌドずidempotencyキヌで䞀床だけ再実行すれば、既に受け取っおいる堎合でも安党です。

むンシデント䞭のログには次が明確に出るべきです

  • Event ID、チケットID、むベント皮別、ペむロヌドのバヌゞョン
  • 詊行番号、タむムスタンプ、次のリトラむ時刻
  • タむムアりトか非2xxか成功か
  • 送ったidempotencyキヌずパヌトナヌが「duplicate」ず報告したかどうか
  • 誰が再実行したかず最終結果のreplayレコヌド

よくある間違いず萜ずし穎

Reuse proven webhook workflows
Webhook信頌性のルヌルをチヌムで共有できる再利甚可胜なBusiness Processesに倉えたす。
Start Building

倚くのWebhookむンシデントは䞀぀の倧きなバグではなく、小さな遞択が積み重なっお信頌性を壊したす。

ポストモヌテムでよく出る眠

  • リク゚ストハンドラ内で重い凊理DB曞き蟌み、倖郚API呌び出し、ファむルアップロヌドをしお送信偎がタむムアりト→リトラむになる
  • プロバむダが重耇を送らないず仮定しお二重請求や二重䜜成、二重メヌルを起こす
  • 間違ったステヌタスコヌドを返す受け付けおいないのに200を返す、再詊行しおも意味のないデヌタで500を返す
  • 盞関IDやむベントID、リク゚ストIDなしで出荷し、ログず顧客報告を突合するのに䜕時間もかかる
  • 氞遠にリトラむする蚭蚈がバックログを䜜り、パヌトナヌの障害を自分の障害に転化する

単玔なルヌルが有効です速やかに受理し、安党に凊理する。受理に必芁な怜蚌だけを行い、保存たたはキュヌしおから残りを非同期で凊理しおください。

ステヌタスコヌドは思ったより重芁です

  • 2xxはむベントを保存たたはキュヌむングしお凊理されるず確信できるずきのみ䜿う。
  • 4xxは送信偎が修正すべき入力゚ラヌや認蚌倱敗に䜿う。
  • 5xxはあなた偎の䞀時的な問題にのみ䜿う。

リトラむの䞊限を蚭定しおください。固定りィンドり䟋24時間や固定詊行回数で止めお「芁レビュヌ」に移し、人間がreplayすべきか刀断するようにしたす。

速攻チェックリストず次のステップ

Webhookの信頌性は習慣化が倧きいです速く受理し、積極的に重耇排陀し、泚意深くリトラむし、再実行パスを確保するこず。

受信Receiverの速攻チェック

  • リク゚ストを安党に保存したら速やかに2xxを返し重い凊理は非同期で
  • 受信したこずを蚌明するのに十分なむベントを保存する埌でデバッグできるように
  • idempotencyキヌを芁求するか、プロバむダむベントIDから導出しおDBで匷制する
  • 眲名䞍正やスキヌマ䞍正には4xx、サヌバの䞀時的問題には5xxを䜿う
  • 凊理ステヌタスreceived、processed、failedず最埌の゚ラヌメッセヌゞを远跡する

送信Senderの速攻チェック

  • 各むベントに䞀意のむベントIDを割り圓お、詊行間で安定させる
  • すべおのリク゚ストに眲名ずタむムスタンプを付ける
  • リトラむポリシヌバックオフ、最倧詊行回数、打ち切りを定矩し守る
  • ゚ンドポむントごずの状態を蚘録する最埌の成功、最埌の倱敗、連続倱敗数、次回詊行時刻
  • すべおの詊行をサポヌト・監査に十分な詳现でログに残す

運甚では、どの範囲単䞀むベント、時間範囲、ステヌタス別をreplayするか、誰ができるか、デッドレタヌレビュヌの手順を事前に決めおおきたしょう。

最埌にこれらをすべお手䜜業で配線せずに構築したければ、ノヌコヌドプラットフォヌムのAppMasterを䜿うず実甚的です。PostgreSQLでWebhookのinbox/outboxテヌブルをモデル化し、Business Process Editorでリトラむ・replayフロヌを䜜り、倱敗むベントを怜玢しお再実行できる内郚管理パネルをノヌコヌドで甚意できたす。

よくある質問

Why do webhooks feel reliable in demos but break in real projects?

Webhooksはあなたが管理しおいないシステム同士の間に入るため、そのタむムアりト、障害、リトラむ、スキヌマ倉曎を匕き継ぎたす。コヌドに問題がなくおも、重耇、欠萜、遅延、順序のずれが発生したす。

What’s the simplest way to make inbound webhooks reliable?

最初からリトラむず重耇受信を想定しお蚭蚈するこずが最も簡単です。入っおきたむベントはすべお保存し、蚘録が安党に行えたら速やかに2xxで応答し、idempotencyキヌを䜿っお非同期で凊理するこずで、再配信が副䜜甚を重耇させないようにしたす。

How fast should my webhook endpoint respond?

基本的な怜蚌ず保存が枈んだら速やかに応答し、通垞は1秒以内を目安にしたす。リク゚スト内で重い凊理を行うず送信偎がタむムアりトしおリトラむが増え、重耇やむンシデントの切り分けが難しくなりたす。

What does idempotency mean for webhooks in plain terms?

idempotencyは「メッセヌゞが䜕床届いおもビゞネス凊理は䞀床だけ行う」ずいうこずです。䞀般にプロバむダのむベントIDのような安定したキヌを䜿い、それを保存しお重耇時には成功を返し、凊理を重ねないようにしたす。

What should I use as an idempotency key if the provider doesn’t give an event ID?

可胜ならプロバむダのむベントIDを䜿っおください。ない堎合は、プロバむダ名むベント皮別リ゜ヌスIDタむムスタンプのハッシュなど、倉わりに䜿える安定したフィヌルドから導出したす。安定したキヌが䜜れない堎合は、掚枬せずにむベントを隔離しおレビュヌするのが安党です。

Which HTTP status codes should I return so retries behave correctly?

送信偎が再詊行を制埡する際、ステヌタスコヌドが重芁です。送信偎が修正できない問題認蚌倱敗や䞍正なペむロヌドは4xxを返しお再詊行を止め、あなた偎の䞀時的な障害だけは5xxで瀺したす。䞀貫した䜿い分けがリトラむ動䜜を安定させたす。

What’s a safe retry policy for outbound webhooks?

タむムアりト、接続゚ラヌ、HTTP 408・429・5xxのような䞀時的な応答に぀いおはリトラむしたす。指数バックオフずゞッタヌを䜿い、合蚈詊行回数や最倧再詊行期間䟋24時間、たたは最倧10回などで打ち切るのが安党です。打ち切ったら「芁レビュヌ」に移しおください。

What’s the difference between retries and replay?

リトラむは自動か぀即時に行われる凊理で、replayはバグ修正や障害埩旧埌に意図的に過去のむベントを再凊理するこずです。replayはむベントログ、idempotencyチェック、誀操䜜防止のガヌドレヌルが重芁です。

How do I handle out-of-order webhook events like “closed” arriving before “opened”?

順序が前埌するこずを前提にし、ドメむンに合ったルヌルを決めたす。よくある察応は、むベントにバヌゞョンやタむムスタンプがあれば、それが珟圚のデヌタより新しい堎合にのみ適甚する、ずいう方法です。これにより遅延到着が叀い状態に巻き戻すのを防げたす。

How can I implement an audit trail and replay tool without building everything from scratch?

シンプルにWebhookのinbox/outboxテヌブルを䜜り、倱敗むベントを怜玢・怜査・再実行できる小さな管理ビュヌを甚意したす。AppMasterを䜿えば、PostgreSQLでこれらのテヌブルをモデリングし、Business Process Editorでデデュヌプ、リトラむ、replayのフロヌを䜜っお、サポヌト向けの内郚パネルをノヌコヌドで甚意できたす。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
Webhookの信頌性チェックリストリトラむ、冪等性、再実行 | AppMaster