冪等性とは
冪等性(べきとうせい、Idempotency)は、同一の操作を何度実行しても結果が同じになる性質です。ネットワーク障害やリトライ時にデータの重複・不整合を防ぐために重要です。
具体例
- 冪等な操作: HTTP GET、PUT、DELETE。何度実行しても同じ結果
- 冪等でない操作: HTTP POST(カウンターの加算など)。実行ごとに結果が変わる
実装パターン
- 一意キー: リクエストにユニークIDを付与し、処理済みなら再実行しない
- UPSERT: INSERTの代わりにINSERT OR REPLACEを使用
- 状態チェック: 処理前に現在の状態を確認し、既に目標状態なら何もしない