Как LinkedIn случайно создал идеальную архитектуру для ИИ-агентов (история Apache Kafka и Pinot)
TL;DR: LinkedIn создал функцию «Кто смотрел профиль» → Породил Apache Kafka и Pinot → Случайно решил проблемы ИИ-агентов за 10 лет до их появления. Главный инсайт: Ваша база данных не готова к тому, что ИИ-агент будет запускать 100 запросов параллельно вместо одного.
Введение: От простого счетчика к революции в данных
Представьте: вы заходите в LinkedIn и видите «23 человека просмотрели ваш профиль». Простая цифра, правда?
Неправда.
За этой цифрой стоит архитектура, которая:
- Обрабатывает 10 000 запросов в секунду
- Отвечает за 100 миллисекунд
- Породила два open-source гиганта (Apache Kafka и Pinot)
- Случайно решила проблемы ИИ-агентов за 10 лет до их появления
История этой функции — это не просто техническая байка из Кремниевой долины. Это blueprint для будущего, где вашими главными пользователями станут не люди, а автономные ИИ-агенты.
Давайте разберем 4 ключевых урока.
Урок 1: Одна функция → Два open-source гиганта
Проблема LinkedIn (2010)
В 2010 году LinkedIn был «кладбищем резюме». Люди загружали профили и… всё. Никакой активности, никакого engagement.
Команда запустила эксперимент: «Кто просматривал ваш профиль?»
Результат? 💥 Взрывной рост активности.
Но возникла техническая проблема:
- 1 миллиард пользователей хотят знать, кто их смотрел
- 10 000 запросов в секунду в пиковые часы
- Задержка должна быть < 100 мс (иначе приложение «тормозит»)
- Данные должны быть свежими (не вчерашними)
Рождение Apache Kafka (2010)
Существующие message queue системы не справлялись. LinkedIn создал Kafka — распределенную платформу потоковой передачи данных.
Ключевые принципы Kafka:
| |
Каждый клик, просмотр, лайк — это событие в Kafka. Система стала «центральной нервной системой» LinkedIn.
Рождение Apache Pinot (2013)
Kafka собирала события, но как их мгновенно анализировать?
Традиционные OLAP системы:
- ❌ Слишком медленные (секунды, не миллисекунды)
- ❌ Не справляются с concurrency (1000+ параллельных запросов)
- ❌ Batch-ориентированные (данные устаревают)
LinkedIn создал Pinot — real-time OLAP базу данных.
Архитектура Pinot:
| |
Результат: Одна user-facing функция породила две технологии, которые сегодня используют Uber, Stripe, Walmart и десятки других компаний.
Урок 2: Лучшая аналитика — та, что видит клиент
Два мира аналитики
Мир 1: Internal Analytics (для менеджеров)
| |
Мир 2: User-Facing Analytics (для клиентов)
| |
Триединый вызов user-facing analytics
1. Data Freshness (Свежесть)
- Internal: «Данные за вчера? Норм.»
- User-facing: «Кто-то посмотрел профиль? Хочу знать СЕЙЧАС.»
2. Query Latency (Задержка)
- Internal: «30 секунд? Схожу за кофе.»
- User-facing: «100ms или пользователь уйдет.»
3. Concurrency (Параллелизм)
- Internal: 10-100 аналитиков
- User-facing: 1M+ пользователей одновременно
Почему это революция?
«Настоящая ценность данных раскрывается, когда вы возвращаете их клиентам, а не запираете в дашбордах для менеджеров.»
Примеры user-facing analytics сегодня:
- Spotify Wrapped: Ваша музыкальная статистика
- Strava: Анализ тренировок в real-time
- Uber: «Ваш водитель прибудет через 3 минуты»
- Trading apps: Котировки и портфель в real-time
Урок 3: ИИ-агенты — это машины, а не люди (и ваша БД не готова)
Человек vs ИИ-агент: Паттерны запросов
Человек:
| |
ИИ-агент:
| |
Реальный пример из демо
В одной демонстрации ИИ-агенту дали задачу: «Найди подозрительные аккаунты в соцсети»
Агент самостоятельно:
- Сгенерировал 15-20 SQL запросов
- Искал паттерны:
- «Посты с 10K+ лайков, но < 10 комментов»
- «Рост подписчиков > 1000% за день»
- «Аккаунты, созданные вчера с 100K подписчиков»
- Выполнил все запросы параллельно
- Нашел корреляции между результатами
Что это значит для вашей архитектуры?
| |
Ключевой инсайт: Если ваша БД «тормозит» от 10 аналитиков, представьте, что будет, когда 100 ИИ-агентов начнут по 100 запросов каждый.
Урок 4: Будущее = Векторный поиск + Real-time фильтры
Почему чистого векторного поиска недостаточно
Типичный векторный поиск:
| |
Реальный бизнес-запрос:
| |
Проблема векторных БД
Чистые векторные БД (Pinecone, Weaviate) плохо справляются с гибридными запросами:
- Сначала векторный поиск (медленно на большом объеме)
- Потом фильтрация (неэффективно)
- Производительность деградирует с ростом фильтров
Решение Pinot: Гибридная архитектура
| |
Пример гибридного запроса в Pinot:
| |
Результат:
- ⚡ 10-100x быстрее чистых векторных БД на гибридных запросах
- ✅ Один движок для всех типов поиска
- 🔄 Real-time ingestion из Kafka
Практические выводы: Что делать прямо сейчас?
Если вы строите user-facing продукт:
Переосмыслите аналитику
- Не «дашборды для менеджеров»
- А «инсайты для пользователей»
Проверьте готовность к real-time
1 2 3 4 5 6# Ваш чек-лист: □ Data freshness < 1 секунда? □ Query latency < 100ms? □ Concurrency > 1000 QPS? Если хотя бы один "нет" → изучайте Kafka + Pinot
Если вы внедряете ИИ-агентов:
Протестируйте нагрузку
1 2 3 4# Симуляция ИИ-агента for _ in range(100): thread.start(run_random_query) # Ваша БД выжила?Подготовьте архитектуру
- Event streaming (Kafka) для сбора данных
- Real-time OLAP (Pinot) для аналитики
- Гибридные индексы для векторного + структурированного поиска
Если вы data engineer:
Изучите стек LinkedIn
- Apache Kafka — уже industry standard
- Apache Pinot — набирает momentum
Попробуйте в песочнице
1 2 3# Quick start с Docker docker run -p 9000:9000 apachepinot/pinot:latest \ QuickStart -type hybrid
Заключение: История повторяется
2010: LinkedIn создал user-facing analytics → Породил Kafka и Pinot
2025: ИИ-агенты становятся новыми «users» → Требуют ту же архитектуру
История LinkedIn учит нас главному:
Технологии, созданные для решения реальных пользовательских проблем, переживают своих создателей и находят применение в областях, о которых никто не мог мечтать.
Функция «Кто смотрел профиль» была создана для увеличения engagement.
Но случайно решила проблемы, которые появятся через 15 лет — когда ИИ-агенты начнут «смотреть» наши данные со скоростью 10 000 запросов в секунду.
Вопрос не в том, готова ли ваша инфраструктура к ИИ-агентам.
Вопрос в том, успеете ли вы подготовиться, пока конкуренты уже не запустили своих.
Полезные ссылки
Технологии
Кейсы использования
Для разработчиков
Есть опыт работы с Kafka или Pinot? Внедряете ИИ-агентов? Поделитесь в комментариях или напишите мне в Telegram!