Банковская транзакция должна за секунды превратиться в оценку фрода. В рознице счётчик запасов, не синхронизированный с заказами, ломает промоакции. В таких сценариях batch-пайплайны не справляются, и в игру вступают архитектуры потоковой обработки на базе Apache Kafka.
Что такое Kafka на самом деле
Kafka — не распределённая очередь сообщений, а устойчивый распределённый лог. Системы-продюсеры пишут сообщения в топики, потребители читают их. Сообщения остаются доступными для чтения в течение окна retention (дни, недели или бесконечно) — именно это отличает Kafka от классической очереди.
Архитектурные паттерны
На базе Kafka доминируют три паттерна:
- Event Sourcing: состояние приложения хранится как лог событий; текущее состояние восстанавливается их последовательным воспроизведением.
- CDC (Change Data Capture): инструменты вроде Debezium передают в Kafka все изменения операционной базы; аналитический слой синхронизируется потоком, а не батчем.
- Stream Processing: Kafka Streams, Apache Flink или Spark Structured Streaming выполняют оконные агрегации над событиями в реальном времени.
Критически важные продакшен-решения
- Фактор репликации 3: минимальный стандарт для предотвращения потери данных.
- Стратегия партиционирования: ключ определяет сохранение порядка внутри партиции. Для клиентских операций
customer_id— самый частый выбор. - Schema Registry: управление совместимостью схем между продюсером и потребителем через Avro/Protobuf спасает продакшен от хаоса.
- Мониторинг: consumer lag, заполненность диска брокера и число under-replicated партиций — три метрики, которые нужно отслеживать непрерывно.
Когда Kafka — правильный корпоративный выбор
Не каждый поток данных должен переехать на Kafka. Для batch-пайплайнов, работающих раз в сутки, ETL на Airflow вполне достаточен. Ценность Kafka проявляется там, где критична суб-секундная задержка и один и тот же event используют несколько потребителей для разных целей.
Практический пример
В крупном турецком частном банке CDC-интеграция на Kafka сократила время формирования отчётов на конец дня с 6 часов до 12 минут. Ключевыми факторами успеха стали настройка Schema Registry с первого дня и разделение consumer-групп по бизнес-доменам (риск, CRM, аналитика).
