Запись сообщения в топик#

Основной сценарий#

  1. Производитель формирует сообщение (ключ, значение, топик).

  2. Производитель отправляет сообщение в Corax (в Kafka-брокер).

  3. Corax (брокер) определяет партицию (по ключу, хешированию или стратегии).

  4. Сообщение записывается в лог партиции.

  5. Брокер подтверждает успешную запись (ack).

  6. Производитель получает подтверждение.

Альтернативный сценарий: отправка без подтверждения (ack = 0)#

2а. Производитель не ждет подтверждения. 6а. Сообщение считается отправленным сразу после передачи.

Альтернативный сценарий: запись с повторными попытками#

2б. Если брокер недоступен, производитель повторяет отправку. Повторы настраиваются через retries, retry.backoff.ms.

Исключительные сценарии#

Топик не существует#

3в. Отсутсвует топик, и отключено автоматическое создание топика Kafka (auto.create.topics.enable = false). 6в. Производитель получает UnknownTopicOrPartitionException.

Брокер недоступен#

2г. Производитель не может подключиться для отправки сообщения — ошибка TimeoutException или NetworkException.

Ошибка сериализации#

3д. Если ключ или значение нельзя сериализовать (например, не поддерживаемый формат). 6д. Производитель получает SerializationException.