Немного истории: зачем и почему LinkedIn создал Apache Kafka LinkedIn можно не любить, можно даже ругать, но нельзя отрицать его вклад в культуру. Как минимум, он подарил нам пост «Я сделал предложение своей девушке, и вот что это я узнал о B2B-продажах благодаря этому» и Apache Kafka. 🔜 Kafka — это платформа для обработки потоковых данных в реальном времени. Она используется там, где важно настроить передачу больших объемов данных с потенциалом для масштабирования и минимальным лагом — у наc на сайте есть пример. Но почему вообще LinkedIn решил создать такой тул? Если кратко, то дела обстояли так. LinkedIn собирает данные о поведении пользователей — посты, комментарии, лайки, просмотры. Они используются для создания рекомендательных алгоритмов и защиты от фрода. Раньше, до появления Kafka, это все распределялось на два отдельных конвейера: 🔵«пакетный» пайплайн — каждый час информация о событиях на сайте сохранялась в XML и пачками отправлялась в хранилище, 🔵real-time пайплайн — метрики, которые надо было отлеживать в режиме реального времени (состояние серверов, ошибки, алерты об ошибках) отправлялись в Zenoss. За развитие обоих пайплайнов отвечали две небольшие команды, которым приходилось делать много ручной работы по их поддержке и обновлению — например, добавлять новые метрики или источники. Получилась система немасштабируемая, неудобная и не стабильная. Сбой в пайплайне мог повлечь за собой сбои на сайте. Конечно, это было не дело, и в LinkedIn решили разработать альтернативу: устойчивую, масштабируемую, способную интегрироваться с разными сервисами и обеспечивающую доступ к данным в реальном времени. Так и появилась Kafka. Сейчас даже сложно представить, что не так уж и давно в такой большой компании как LinkedIn большие массивы данных обрабатывались почти вручную, еще и с большими задержками. 🔜 Если интересно узнать подробности, то они описаны в этой статье. Ну и не забудьте рассказать в комментах — в вам приходилось пользоваться Apache Kafka?