На странице собраны вопросы по Kafka — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: kafka, backend, api.
Outbox обычно появляется в той БД, где вместе с бизнес-изменением нужно надёжно сохранить исходящее событие. Если вход пришёл из Kafka, consumer может записать результат и outbox одной транзакцией.
Если не работали со «Сбермоком», так и скажите и уточните его роль. По описанию это платформа эмуляции интеграций; знакомство с WireMock или тестовыми брокерами может быть релевантным, но не тождественным.
По числу 100 тысяч активных пользователей количество Kafka partition определить нельзя. Нужны частота платежей, событий на операцию, размер сообщений, скорость consumer и пиковая нагрузка.
Планировщик порциями создаёт уникальные задания и outbox в БД, publisher отправляет их в Kafka, consumer вызывает SMS-провайдера. Ключ кредита, даты и типа напоминания подавляет повторное планирование.
Kafka позволяет отделить приём от обработки и сгладить пики долговечной очередью. Масштабирование синхронного API не создаёт такую гарантию и может усилить давление на ограниченную БД.
Можно разделить poll и обработку, но очередь в памяти не является подтверждением надёжного результата. Offset фиксируют только после завершения обработки, а доступ к KafkaConsumer остаётся у одного управляющего потока.
Определите стабильный event_id, заведите inbox с уникальным ключом и сохраняйте факт обработки вместе с бизнес-изменением в одной транзакции. Kafka offset подтверждайте после успешного commit.
Опишите, что кэшировали, где хранили и как обеспечивали актуальность. У локальных кэшей разных экземпляров появляются независимые копии, поэтому одной очистки на изменившем данные instance недостаточно.
Джуну можно дать задачу с Kafka, если ограничить риск, обеспечить наставника и понятную проверку. Причина отказа должна быть в критичности и отсутствии поддержки, а не в названии технологии.
Kafka полезна для отделения приёма от обработки, сглаживания пиков и независимых подписчиков. Масштабирование синхронных экземпляров не устраняет медленную зависимость и не создаёт долговечную очередь само по себе.
Outbox решает разрыв между commit бизнес-данных в БД и публикацией события: оба намерения сохраняются одной локальной транзакцией. Поздний commit Kafka offset решает другую часть задачи и не закрывает этот разрыв.
Partition — единица порядка и назначения работы: внутри неё Kafka хранит упорядоченный журнал, а одна обычная consumer group назначает её одному consumer за раз. Больше partition допускает больше параллельных читателей.