Skip to content

Idempotency

冪等性

01你是不是遇到這個 / THE SYMPTOM

使用者按「結帳」按鈕,因為網路慢沒反應就連按了三下,結果被扣三次款、建了三張訂單。或是付款的 webhook 重送,導致同一筆訂單重複處理。我想讓「同一個操作就算被執行很多次,結果也只算一次」,但不知道這個概念叫什麼。

↑ 如果你點頭了,你要的關鍵字就是 Idempotency

02這是什麼 / DEFINITION

Idempotency(冪等性)指的是「同一個操作執行一次和執行多次,效果完全相同」。做法通常是讓每次請求帶一個唯一識別碼(idempotency key),伺服器靠它判斷「這個我處理過了」就不再重複執行。

03什麼時候用 / WHEN TO USE

付款、下訂單、轉帳、發送通知、處理 webhook、重試機制——任何「重複執行會造成重複扣款、重複建立、重複發送」的關鍵操作,都該設計成冪等。

04怎麼跟 AI 說 / HOW TO ASK

直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:

幫我讓這個建立訂單的 API 具備 idempotency:前端送一個 idempotency key,後端用它在資料庫加 UNIQUE 約束,同一個 key 重複送只會建立一筆訂單、不會重複扣款。
05常見坑 / WATCH OUT

光在前端「按一下就把按鈕變灰」不算真的冪等,網路重試、webhook 重送、多裝置都會繞過它——真正的冪等保護一定要做在後端(用唯一鍵 + 資料庫約束)。另外注意:冪等不等於「只准呼叫一次」,而是「呼叫幾次結果都一樣」。

06相關的詞 / RELATED