Что такое Идемпотентность
Повторный запрос даёт тот же результат
Идемпотентность — свойство операции, при котором многократное выполнение даёт тот же результат, что и однократное.
Примеры идемпотентных операций
- GET — получение данных не меняет состояние
- PUT — повторная установка значения даёт то же состояние
- DELETE — повторное удаление уже удалённого ресурса
Неидемпотентные операции
- POST — создаёт новый ресурс при каждом вызове
- Инкремент счётчика
Зачем нужна
- Повторные запросы — безопасны при сбоях сети
- Распределённые системы — упрощает обработку ошибок
- Платёжные системы — защита от двойных списаний
Реализация
- Idempotency Key — уникальный ключ для каждого запроса
- Хранение состояния выполненных операций
- TTL для ключей идемпотентности