12 подписчиков
Идемпотентность — любимый вопрос на собеседованиях
В продолжение вчерашнего кейса, как в итоге решили проблему:
Когда клиент нажимает "Оплатить", он отправляет уникальный код (например, ABC123 или UUID) вместе с запросом на сервер.
1. Первый запрос: Сервер видит новый код ABC123, выполняет оплату, сохраняет результат вместе с кодом.
2. Повторный запрос: Сервер видит тот же код ABC123, возвращает сохраненный результат, не проводя оплату повторно.
Что получили:
- Отсутствие двойных списаний: запросы с одним кодом обрабатываются только один раз.
- Экономия ресурсов: сервер не дублирует операции и не стучится во внешние интеграции.
- Удовлетворённость клиента: защита от случайных повторных оплат.
Как часто вы или у вас спрашивают на собеседовании про идемпотентность?
Около минуты
10 ноября 2024