Вопрос на собеседовании · Backend-разработчик
Что такое идемпотентность и зачем она в API?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Идемпотентная операция при повторном выполнении с теми же параметрами оставляет систему в том же итоговом состоянии, что и один вызов. Это свойство особенно важно при таймаутах: клиент не знает, обработал ли сервер первый запрос, и может повторить его.
HTTP-методы имеют ожидаемую семантику: GET, PUT и DELETE считаются идемпотентными, POST — обычно нет. Для опасных повторов POST используют idempotency key, сохраняют результат первой операции и возвращают его для дубликатов.
01 · Структура ответа
Что важно сказать интервьюеру
Раскройте тезисы, которые относятся именно к этому вопросу, и поясните их на собственном примере:
02 · Пример
Как объяснить на практике
При создании платежа клиент отправляет уникальный ключ. Если ответ потерялся и запрос повторился, сервер находит уже завершённую операцию и возвращает прежний результат вместо второго списания.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Как долго хранить ключи идемпотентности?
- Как реализовать это в базе данных?
- Чем идемпотентность отличается от дедупликации?
05 · Проверка фактов
Первоисточники по теме
Ссылки ниже помогают проверить понятия, методы и ограничения по теме. Они не являются доказательством того, что этот вопрос задают на каждом собеседовании.
- RFC 9110: Idempotent Methods — Семантика идемпотентности HTTP-методов.
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.
Mira