Kafka — это распределённая платформа потоковой передачи событий, или event streaming platform. Она предназначена для того, чтобы разные приложения и информационные системы могли обмениваться событиями асинхронно, надёжно и с высокой пропускной способностью.
Kafka позволяет:
- публиковать события;
- читать и обрабатывать события;
- хранить события в течение заданного периода;
- передавать события нескольким независимым потребителям;
- обрабатывать данные в реальном времени или повторно обращаться к истории событий.
Kafka — это не просто очередь сообщений. В классической очереди сообщение обычно удаляется после успешного получения одним потребителем. В Kafka событие сохраняется в топике согласно настроенной политике хранения, а разные приложения могут независимо читать одни и те же события.
С Kafka основной сервис публикует событие OrderCreated — «заказ создан». После этого разные приложения самостоятельно получают это событие и выполняют свою работу. Такой подход уменьшает связанность между системами. Производитель события не обязан знать, сколько потребителей у события и как именно они его обрабатывают.
Что должен знать аналитик?
Бизнес- или системному аналитику не обязательно сразу уметь администрировать Kafka. Важно понимать, какие бизнес-события передаются, кто их публикует, кто потребляет и какие гарантии обработки требуются.
Kafka — это платформа для построения потоков событий между приложениями и информационными системами. Она помогает отделить отправителей данных от их потребителей, хранить историю событий, масштабировать обработку и строить отказоустойчивые интеграции.
Для аналитика Kafka следует рассматривать не только как технический инструмент, но и как способ организации взаимодействия между системами. Главные вопросы при проектировании такой интеграции: какое событие произошло, кто его публикует, кто его обрабатывает, в каком порядке, сколько раз и что произойдёт при ошибке.