Вам очень понравилась рубрика с разборами сложных вопросов с собеседований, поэтому делаем 🫡
Сегодня разберем еще один распространенный вопрос с собесов
Представьте ситуацию, нажали кнопку Оплатить, страница зависла, и вы нажали ее еще раз. Через минуту приходит уведомление о списании денег... ДВАЖДЫ 💣
Именно от таких ситуаций защищает идемпотентность
То есть, даже когда вы нажали Оплатить два раза, деньги списываются однократно, потому что система понимает, что это тот же самый запрос, и не выполняет его повторно
Дальше обычно спрашивают про HTTP-методы
💚Но здесь есть ловушка!
На вопрос "Можно ли сделать POST идемпотентным?" правильный ответ да, можно, например, через idempotency key и защиту от дублей
Однако по стандарту POST все равно считается неидемпотентным
Сеньорский ответ звучит примерно так:
✴️ YouTube | ✴️ Сайт | 💸 Консультация
Сегодня разберем еще один распространенный вопрос с собесов
– Что такое идемпотентность?
Представьте ситуацию, нажали кнопку Оплатить, страница зависла, и вы нажали ее еще раз. Через минуту приходит уведомление о списании денег... ДВАЖДЫ 💣
Именно от таких ситуаций защищает идемпотентность
💚Идемпотентность – это свойство операции, при котором многократное выполнение дает тот же результат, что и однократное
То есть, даже когда вы нажали Оплатить два раза, деньги списываются однократно, потому что система понимает, что это тот же самый запрос, и не выполняет его повторно
Дальше обычно спрашивают про HTTP-методы
✅ Идемпотентные: GET / PUT / DELETE
❌ Неидемпотентные: POST / PATCH
💚Но здесь есть ловушка!
На вопрос "Можно ли сделать POST идемпотентным?" правильный ответ да, можно, например, через idempotency key и защиту от дублей
Однако по стандарту POST все равно считается неидемпотентным
Сеньорский ответ звучит примерно так:
– Идемпотентность нужна для защиты от повторной обработки запросов. Особенно критична в платежах, очередях сообщений и распределенных системах, где один и тот же запрос может прилететь несколько раз
✴️ YouTube | ✴️ Сайт | 💸 Консультация