Напишите обработчик создания платежа, который принимает ключ идемпотентности и данные платежа и возвращает результат. Повторный запрос с тем же ключом не должен списать деньги второй раз, даже если два одинаковых запроса пришли одновременно на разные инстансы сервиса; у вас есть база данных и внешний платёжный провайдер.
~15 мин голосом
Как подойти
Проверяют, умеете ли вы сделать операцию со стороны эффектов ровно-один-раз в распределённой системе: атомарно захватить ключ через БД до вызова провайдера, корректно обработать параллельные повторы и неизвестный исход внешнего вызова и не допустить двойного списания.
Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.