外部連携(API、Webhook、バッチ連携、CSV連携)は、必ず失敗します。
ネットワーク断、相手側障害、タイムアウト、仕様変更、想定外のデータ…。
失敗しない設計は不可能なので、現実的には「失敗しても戻れる」「重複しても壊れない」「止まっていることが分かる」を作るのが勝ち筋です。
本記事では、外部連携を運用で詰まらせないための設計要点を整理します。
失敗は大きく分けて次の3種類です。種類を分けないと、無限リトライや二重反映が起きます。
恒久的失敗は、データの妥当性とエラー表示の問題です。
入力の厳密さは 即時バリデーション や、
文言は エラーメッセージ設計 の発想で「直し方が分かる」形に寄せます。
Webhookや再送がある連携では、同じ通知が複数回届くのが普通です。
重複しても壊れないように、以下のいずれか(または併用)で守ります。
ステータス管理に落とすなら、ステータス設計の実例 の考え方で、
「同じイベントが2回来たときに、現場の行動が変わるか?」で分岐を決めると、無駄な状態が増えません。
リトライは入れるだけなら簡単ですが、運用が無いと永遠に詰まります。最低限、次を決めます。
「要対応」の一覧は、ダッシュボードのカラム設計(テンプレート)と同じで、
誰が見て、何をすれば解決するか(再送/手動反映/相手に連絡)が分かる列にします。
連携で厄介なのは「相手には通ったが自分に反映されていない」などの部分成功です。
このとき必要なのは、整合を取り直す手段です。
業務フローとしては、担当者割当(割当ロジック)と合わせ、
“連携エラーの担当”を明確にしておかないと、誰も触らず滞留します。
外部連携は「外からデータが入る入口」です。最低限、次を押さえます。
セキュリティ観点の整理は 権限・ログ設計 と同じ発想で、 “誰がいつ何をしたか”が追えるようにします。
不具合受付(RMAフォーム)のように添付や条件が多い領域は、
入力不足が恒久的失敗になりやすいです。先にバリデーションを強め、失敗時の“直し方”を提示すると運用が回ります。
荷主向けの公開(ステータス公開)などは、重複や欠落が信頼に直結します。
冪等性と監視(止まったことを見える化)をセットで入れるのが安全です。
外部連携は失敗します。だからこそ、再送・冪等性・部分成功の整合・監視の4点を最初から設計に入れるべきです。
「止まらない」より「止まっても戻れる」を優先すると、運用が安定します。