Ctrl K
Backend · Middle · Теория

Клиент отправляет POST-запрос на создание платежа, ответ не доходит из-за таймаута, и клиент повторяет запрос. Как сделать так, чтобы деньги не списались дважды?

~4 мин голосом

Как подойти

Проверяют, понимает ли кандидат, как сделать неидемпотентную операцию безопасной для повторов: ключ идемпотентности, атомарная фиксация ключа в БД, обработка гонок и запросов «в процессе», а также идемпотентность по всей цепочке до платёжного провайдера.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыНапишите обработчик создания платежа, который принимает ключ идемпотентности и данные платежа и возвращает результат. Повторный запрос с тем же ключом не должен списать деньги второй раз, даже если два одинаковых запроса пришли одновременно на разные инстансы сервиса; у вас есть база данных и внешний платёжный провайдер. SeniorКак бы вы сделали пагинацию в API ленты, где миллионы записей и новые постоянно добавляются? Какие варианты знаете и чем они отличаются? MiddleСпроектируйте rate limiter для публичного API: например, не больше 100 запросов в минуту на один API-ключ. Сервис работает на нескольких инстансах. MiddleЧем HTTP/2 отличается от HTTP/1.1 на уровне того, как байты идут по соединению? Какую проблему он решил, какую оставил, и при чём тут HTTP/3? MiddleКакие группы кодов ответа HTTP вы знаете, и какие конкретные коды бэкенд возвращает чаще всего? Junior

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~4 мин