一言でいうと
「冪等性」とは、何度やっても同じ結果になる性質のことです。1回やっても100回やっても、結果は変わりません。
もう少し詳しく
冪等性を日常で例えるなら、電気のスイッチです。電気をつける操作を1回しようが10回しようが、つきっぱなしです。変わりません。
一方、これがない操作の例は音量ボタンです。音量上げボタンを1回押すと音が少し大きくなり、10回押すとさらに大きくなります。同じ操作でも回数で結果が変わってしまいます。
システムの修理(バグ直しなど)でサーバーに指示を送るとき、もし通信が不安定で同じ指示が2回3回送られることがあります。そんなときでも、冪等性がある設計なら問題が起きません。だから大事な性質なのです。
よく使われる場面
- APIの設計:同じデータ削除の指示が何度送られても、1度だけ削除される
- 決済システム:お金を支払う指示が重複しても、1回だけ引き落とされる
- メッセージ配信:同じメッセージが複数回送られても、受信側には1回だけ表示される
関連する言葉
- トランザクション:複数の処理をまとめて、すべて成功するか全部失敗するかを保証する仕組み
- 分散システム:複数のコンピュータが協力して動く仕組み。通信エラーが起きやすいので冪等性が重要