Проще говоря, если запрос случайно повторился, система не должна создать второй платеж, вторую заявку, второе письмо, вторую сделку или второй заказ. Первый запуск выполняет действие, а повтор с теми же данными должен вернуть уже известный результат или безопасно подтвердить, что действие уже сделано.
Идемпотентность важна в API, очередях, webhook-ах, платежах, CRM-интеграциях и AI-агентах. Сети падают, пользователи нажимают кнопку дважды, backend делает retry, очередь переотправляет задачу, а агент может повторить tool call после таймаута. Без идемпотентности такие повторы превращаются в дубли и ошибки учета.
Idempotency key — один из популярных способов сделать write-операцию идемпотентной. Но сама идемпотентность шире: ее можно обеспечить уникальными ограничениями в базе, статусами операций, дедупликацией событий, проверкой существующих записей, транзакциями и журналом действий.
Примеры
- Повторный запрос на оплату не создает второй платеж, а возвращает результат первой операции.
- Webhook от CRM пришел дважды, но обработчик обновил задачу один раз.
- AI-агент повторил создание тикета после таймаута, но backend нашел уже созданный тикет и не сделал дубль.
- Операция “поставить статус Done” идемпотентна: повторный вызов оставит тот же статус.
- Операция “добавить 100 рублей к балансу” не идемпотентна без защиты, потому что каждый повтор меняет итоговую сумму.
Где используется
- Безопасные retry в API, очередях и workflow automation
- Защита платежей, заказов, счетов и заявок от дублей
- Надежная обработка webhook-событий
- Контроль write-действий AI-агента через tool calling
- Создание тикетов, сделок, задач и уведомлений без повторов
- Интеграции с CRM, ERP, service desk и платежными системами
- Audit log и расследование повторных операций
Связанные термины
Частые вопросы
Чем idempotency отличается от idempotency key?
Idempotency — это свойство операции: повтор не должен создавать новый эффект. Idempotency key — конкретный ключ, который помогает серверу распознать повтор той же операции.
Какие операции должны быть идемпотентными?
В первую очередь операции с побочным эффектом: платежи, создание заказов, отправка писем, создание тикетов, изменение статусов, запись в CRM и запуск задач.
Почему идемпотентность важна для AI-агентов?
AI-агент может повторить tool call после ошибки, таймаута или неуверенного ответа. Если write-инструменты неидемпотентны, агент легко создаст дубли или выполнит действие дважды.
Как проверить, что операция идемпотентна?
Нужно повторить один и тот же запрос несколько раз и убедиться, что состояние системы не меняется после первого успешного выполнения, а результат повторов предсказуем.