冪等性 は、同じ処理を複数回実行しても結果が壊れないようにする考え方です。
とくに Webhook や API の再送、リトライ、重複実行を考えるときにかなり重要です。
まず押さえたいポイント
- 同じ通知が何回来ても結果を壊しにくくする考え方
- 再送やリトライがある処理ではかなり重要
- メール二重送信や重複更新の防止に関係する
どんな場面で使うか
どんなふうに理解するとよいか
初心者向けには、同じボタンを2回押しても壊れないようにする考え方 と見ると分かりやすいです。
現実のシステムではタイムアウトや再試行が普通に起こるので、1回しか来ない前提で作るとかなり危ないです。
押さえておきたい注意点
冪等性がないと、同じイベントで注文が二重に確定したり、同じメールが何通も送られたりします。
イベント ID や注文番号を保存して、すでに処理済みか確認する作りがよく使われます。
実務で見るポイント
- Webhook の受信処理ではかなり重要
- 再送やリトライを前提に設計する
たぶん1回来るはずではなく重複しても壊れないを目指す