Ctrl K
Senior · Теория

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

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

Как подойти

Проверяют, понимает ли кандидат, что Kafka на практике доставляет сообщения at-least-once, и умеет ли он построить идемпотентный консьюмер: дедупликация по id операции в одной транзакции с проводкой, корректный коммит офсетов, порядок по счёту и обработка «ядовитых» сообщений.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Где спрашивают
Похожие вопросыСервис проводит операцию в своей базе и после этого должен опубликовать событие в Kafka для других систем. Как сделать так, чтобы событие не потерялось и чтобы не ушло событие об операции, которая на самом деле откатилась? SeniorНапишите обработчик создания платежа, который принимает ключ идемпотентности и данные платежа и возвращает результат. Повторный запрос с тем же ключом не должен списать деньги второй раз, даже если два одинаковых запроса пришли одновременно на разные инстансы сервиса; у вас есть база данных и внешний платёжный провайдер. SeniorСпроектируйте на Java сервис, который потребляет события из Kafka, обрабатывает их параллельно и пишет результат в базу. Как вы обеспечите производительность, порядок и отсутствие потерь? SeniorКлиент отправляет POST-запрос на создание платежа, ответ не доходит из-за таймаута, и клиент повторяет запрос. Как сделать так, чтобы деньги не списались дважды? MiddleКлиент вызывает у вас эндпоинт создания платежа, ответ теряется по таймауту, и клиент повторяет запрос. Как вы спроектируете API, чтобы деньги не списались дважды? Senior

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

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

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

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