冪等性とは

冪等性(べきとうせい、Idempotency)は、同一の操作を何度実行しても結果が同じになる性質です。ネットワーク障害やリトライ時にデータの重複・不整合を防ぐために重要です。

具体例

  • 冪等な操作: HTTP GET、PUT、DELETE。何度実行しても同じ結果
  • 冪等でない操作: HTTP POST(カウンターの加算など)。実行ごとに結果が変わる

実装パターン

  • 一意キー: リクエストにユニークIDを付与し、処理済みなら再実行しない
  • UPSERT: INSERTの代わりにINSERT OR REPLACEを使用
  • 状態チェック: 処理前に現在の状態を確認し、既に目標状態なら何もしない