Спроектируйте масштабируемый сервис ежедневных SMS-напоминаний о платеже по кредиту: данные о клиентах и кредитах находятся в БД, отправка SMS выполняется через Kafka. Учтите отказоустойчивость, дублирование, нагрузку и граничные случаи.

Планировщик порциями создаёт уникальные задания и outbox в БД, publisher отправляет их в Kafka, consumer вызывает SMS-провайдера. Ключ кредита, даты и типа напоминания подавляет повторное планирование.

Короткий ответ

Что ответить на собеседовании

Планировщик порциями создаёт уникальные задания и outbox в БД, publisher отправляет их в Kafka, consumer вызывает SMS-провайдера. Ключ кредита, даты и типа напоминания подавляет повторное планирование.

Подробный разбор

Ответ с пояснениями

Планировщик порциями создаёт уникальные задания и outbox в БД, publisher отправляет их в Kafka, consumer вызывает SMS-провайдера. Ключ кредита, даты и типа напоминания подавляет повторное планирование.

Используйте keyset pagination и конкурентный захват с lease. Перед отправкой перепроверяйте долг, контакт, timezone и разрешённое время. Нужны retries с backoff, лимит провайдера и сверка неопределённых результатов. Kafka не отправляет SMS сама и не гарантирует однократный внешний эффект: нужен idempotency key провайдера либо явно согласованная обработка риска дублей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее