idempotent
idempotentは、主に数学やコンピューターサイエンスの文脈で使用される専門用語です。ある操作を一度行ったときと、同じ操作を二度、三度と繰り返したときの結果が同じになる性質を指します。システム設計において、この性質は信頼性を確保するために非常に重要であり、特にネットワーク通信などの不安定な環境で、リクエストの重複送信が発生してもシステムの状態が壊れないようにするために利用されます。
実務的な適用例と重要性
ウェブ開発におけるREST APIの設計では、GETやPUT、DELETEメソッドがべき等であることが期待されます。例えば、あるリソースを削除するDELETEリクエストを一度送ればリソースは消えますが、同じリクエストをもう一度送っても、リソースが既に消えているため、最終的なサーバーの状態は変わりません。一方で、新しいリソースを作成するPOSTリクエストは通常、べき等ではありません。なぜなら、同じリクエストを二回送ると、二つの異なるリソースが作成されてしまうためです。
類似概念との違いidempotentは、しばしば副作用がないことと混同されますが、これらは異なる概念です。副作用がない操作はシステムの状態を一切変更しませんが、べき等な操作は最初の一度目で状態を変更し、それ以降の繰り返しでは状態を変更しないという挙動を示します。つまり、べき等性は状態の変化を許容しつつ、その変化が一度きりで完結することを保証する性質であると言えます。
意味
数学的または計算上の操作において、複数回適用しても、一度だけ適用したときと同じ結果になる性質を持つ状態
The API endpoint is idempotent, meaning that making the same request multiple times will not change the resource beyond the initial application.
その`API`エンドポイントはべき等である。つまり、同じリクエストを複数回送信しても、最初の適用以降はリソースに変更が加えられないということだ。