Идемпотентность
Идемпотентность (Idempotency) — повторяемость без изменения результата
Суть в одном предложении
Идемпотентность — свойство операции: повторное выполнение с теми же данными не меняет результат.
Краткое определение
Идемпотентность — свойство операции, при котором повторное выполнение с теми же входными данными не меняет итоговый результат системы.
Оригинал и перевод
- Язык: английский
- Оригинал: Idempotency
- Буквальный перевод: одинаковый эффект при повторении
Синонимы и варианты написания
- Idempotency
- Идемпотентный запрос
Происхождение
Понятие из математики и теории систем; в IT широко применяется в HTTP и распределённых сервисах из-за ретраев и сетевых сбоев.
Где используется
- HTTP API (POST, оплата, заказы)
- Очереди сообщений и повторная обработка
Когда это важно
При ретраях, таймаутах и повторной доставке сообщений: без идемпотентности возможны дубли операций.
Подробное объяснение
Практически важно для:
- повторной отправки запросов при таймаутах/ошибках сети;
- очередей задач и повторной обработки сообщений;
- платежей и заказов (чтобы не создать дубль).
Обычно реализуют через idempotency key и хранение результата операции на стороне сервера.
Аналоги и связанные термины
- Retry
- Exactly-once / at-least-once (семантики доставки)
- Deduplication
- Rate limiting
Пример использования
«POST /payments делает операцию идемпотентной через Idempotency-Key: повторный запрос не создаст второй платёж.»
Мини‑FAQ
- Идемпотентность и кэш — одно и то же? Ответ: Нет, идемпотентность — про одинаковый результат при повторе; кэш — про хранение ответа для ускорения.
Смотри также
- Rate limiting
- Retry
- Backpressure