Идемпотентность означает, что повтор одного запроса не создаёт новый бизнес-эффект. Idempotency-Key должен связывать операцию с сохранённым результатом, а не просто передаваться в заголовке.
Что такое идемпотентность API и как спроектировать надёжный слой дедупликации с помощью Idempotency-Key?
Идемпотентность означает, что повтор одного запроса не создаёт новый бизнес-эффект. Idempotency-Key должен связывать операцию с сохранённым результатом, а не просто передаваться в заголовке.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Идемпотентность означает, что повтор одного запроса не создаёт новый бизнес-эффект. Idempotency-Key должен связывать операцию с сохранённым результатом, а не просто передаваться в заголовке.
Храните ключ в области пользователя и операции, отпечаток параметров, состояние и итоговый ответ. Уникальное ограничение и транзакция не дают двум исполнителям одновременно создать эффект. Тот же ключ с другими параметрами отклоняется; для выполняющейся операции возвращается согласованный статус. Учтите сбой между внешним вызовом и записью результата: нужен идемпотентный провайдер или reconciliation. TTL выбирают по окну повторов, не забывая, что после удаления ключа защита исчезает.