Kafka
Kafka - open source, применяется для работы с данными в реальном времени. Kafka обеспечивает высокую доступность, она же отказоустойчивость, имеет высокую пропускную способность, а так же журнал событий. Так же для шифрования данных в сообщений используется TLS и role-base access control.
Kafka использует pub-sub (publisher - subscriber) модель, где publishers создают темы (topics) а consumers, они же подписчики, получают эти сообщения. Касательно журнала - Kafka хранит там все события, которые происходили. Это помогает в режиме реального времени отследить, какие события происходили и что было. За счет этого Kafka поддерживает высокую расширяемость и отказоустойчивость.
Архитектура Kafka состоит из четырех частей:
Producers. Публикуют сообщения в topics (темы) Kafka;
Brokers. Ответственные за хранение данных и их репликацию между кластерами Kafka.
Consumers. Читаем данные из topic или сразу из нескольких topics.
Zookeeper. Управляет состоянием кластера Kafka. Не хранит внутри себя данные, а только обеспечивает стабильность и безотказность работы системы, а так же отслеживание этих данных.
Схема работы

Производительность
Превосходно справляется в высоко нагруженных системах и системах реального времени, имеет минимальную задержку и превосходную масштабируемость. Он может обрабатывать миллионы сообщений в секунду. Его архитектура пригодна для горизонтального масштабирования, за счет разделения между отдельными брокерами. Так же большая гарантия сохранения данных, за счет хранения их на диске и в журнале.
Области применения
Аналитика в реальном времени и стриминговые приложения
Event Sourcing, работа с большим объемом данных
Микросервисная связь с обработкой большого объема данных
Приложения, которые требуют большую расширяемость а также отказоустойчивость