
フローは設計を説明するための例であり、顧客事例ではありません。
- イベントを保存
- 処理・安全に再試行
- 定期照合
タイムアウト時には登録済みかもしれない
両方のシステムが動いていても、データの受け渡しは失敗することがあります。相手が保存した後にタイムアウトすると、再送で重複する可能性があります。一方、再送しなければ欠落する場合もあります。受信、処理、反映の確認を分けて記録します。
再試行と復旧機能を確認する
まず連携サービスのログ、再試行、再実行の機能を確認します。StripeのWebhook資料では、通知の重複や順序の入れ替わりが説明されています。各サービスの仕様に合わせ、一度だけ順番どおりに届くことを前提にしない設計が必要です。
各イベントの処理状況を記録する
重要な一つの業務から始めます。通知を検証して番号を保存し、処理待ちと失敗した案件を表示します。再試行の前に、すでに反映されていないか確認します。担当者が安全に復旧できる手順を用意し、元システムの記録とも定期的に照合します。
再実行で二重請求にならないか
通知の重複、順序の逆転、API制限、停止、タイムアウト、処理の一部完了を試します。再実行で二重決済や二重出荷が起きず、抜けた記録を復旧できるか確認しましょう。対応が必要な失敗を通知で判別できることも確かめます。
失敗した処理の履歴を用意する
個人情報を除いた通知の時系列と失敗ログ、API資料、各ケースで期待する結果を用意してください。