Идемпотентная запись
Операция, результат которой не зависит от числа повторов. UPDATE users SET email='x' WHERE id=1 идемпотентна (пять запусков дают то же, что один). UPDATE counter SET n = n + 1 — нет.
Семантика HTTP: PUT идемпотентен по определению, POST — нет. Проектирование REST API рекомендует идемпотентный PUT для замены ресурса. Ключи идемпотентности (паттерн Stripe): клиент генерирует UUID на каждую логическую операцию, сервер отсеивает дубли по ключу (обычно множество в Redis с TTL 24 часа). Так при сетевом таймауте запрос можно безопасно повторить, не рискуя списать деньги дважды. UPSERT (INSERT ... ON CONFLICT) идемпотентен. Компенсирующие действия в паттерне Saga тоже должны быть идемпотентными.