Kafka - the basics
    
  - Описание работы
 - Выдержки из опыта
 

Источники:
Kafka - потоковая платформа. Kafka лишь напоминает систему обмена сообщениями тем, что обеспечивает возможность публикации и подписки на потоки сообщений.
Гарантии доставки до Apache Kafka (Надёжность доставки)
1-й уровень - At-most-once:
событие будет доставлено один раз, но может не быть доставлено вообще; точно один раз
- Важна производительность и допустимы потери отправленных событий
 - Продьюсер отправляет сообщение и не дожидается подтверждения (ack) от брокера
 
2-й уровень - At-least-once (самый популярный):
событие точно будет доставлено хотя бы один раз, но может и больше; важно, чтобы событие было доставленоб даже если это будет повтор
- Важно, чтобы событие было доставлено, даже если это приведет к дублированию
 - Продьюсер дожидается подтверждения (ack) от брокера
 - Чтобы обеспечить гарантию (если подтверждение не дошло) - нужны ретраи
 - Самому потребителю нужно уметь обрабатывать дубли
 
3-й уровень - Exactly-once:
событие будет доставлено строго один раз.
- критична доставка и недопущение дублирования
 - идемпотентный продьюсер (экземпляр, а не кластер) предотвращает дублирование сообщения
 - транзакции Kafka гарантируют доставку до нее
 - в техническом плане самый сложный уровень, может не гарантироваться на самом брокере (Виктор Гамов - один раз в год сады цветут: разбор семантики exactly-once в Kafka) (появилась только в 0.11 версии)
 
Партиции и ключи
Архитектура
https://habr.com/ru/companies/kuper/articles/738634/

Посмотрим на архитектуру Kafka более внимательно. Слева есть продюсеры, в середине брокеры, справа — консумеры. Инструмент представляет собой группу брокеров, связанных с Zookeeper-кворумом. Kafka использует Zookeeper для достижения консенсуса состояния в распределённой системе: есть несколько вещей, с которыми должен быть «согласен» каждый брокер и Zookeeper помогает достичь этого «согласия» внутри кластера.
Топик — это логическое разделение категорий сообщений на группы.