Как работает алгоритм Friend Bubbles для Reels: инсайды от инженеров Meta

Meta представила новый эпизод подкаста Meta Tech Podcast, в котором инженеры Subasree и Joseph раскрыли детали создания функции Friend Bubbles для Reels. Эта функция, отображающая аватарки друзей, которые посмотрели или отреагировали на конкретный ролик, кажется простой снаружи, но требует сложнейше

Как работает алгоритм Friend Bubbles для Reels: инсайды от инженеров Meta

Meta представила новый эпизод подкаста Meta Tech Podcast, в котором инженеры Subasree и Joseph раскрыли детали создания функции Friend Bubbles для Reels. Эта функция, отображающая аватарки друзей, которые посмотрели или отреагировали на конкретный ролик, кажется простой снаружи, но требует сложнейшей инфраструктуры для обработки миллиардов событий в реальном времени. Чтобы понять, как это работает, нужно заглянуть под капот систем, которые обеспечивают мгновенную реакцию на действия миллионов пользователей.

Friend Bubbles — это не просто визуальная фишка. Она повышает вовлечённость за счёт социального контекста: когда вы видите, что друг лайкнул видео, это стимулирует вас тоже посмотреть и отреагировать. Однако реализация такой функции на платформе с миллиардами пользователей — инженерный вызов. Meta показывает, как решать проблемы масштабирования, сохраняя производительность и актуальность данных.

Как работает Friend Bubbles

Алгоритм Friend Bubbles агрегирует данные о действиях друзей в реальном времени. Когда пользователь смотрит Reels, система проверяет, какие из его друзей недавно взаимодействовали с этим контентом. Затем она отображает их аватарки в интерфейсе. Для этого Meta использует распределённые системы, способные обрабатывать миллиарды событий в день. Ключевой вызов — баланс между актуальностью данных и производительностью. Если обновлять пузырьки слишком часто, это создаст нагрузку на серверы; если редко — информация устареет и потеряет смысл.

Инженеры подчеркнули, что Friend Bubbles требует сложной логики для определения, какие именно друзья должны быть показаны. Например, система учитывает не только последние действия, но и их релевантность: если друг посмотрел видео неделю назад, его аватарка может не появиться. Кроме того, алгоритм фильтрует спам и ботов, чтобы пузырьки отображали только реальных друзей.

Какие технологии используются для обработки миллиардов событий?

Meta не раскрывает точный стек технологий, но из подкаста можно сделать выводы. Для реального времени используются системы, подобные Apache Kafka или внутренние аналоги, которые обеспечивают потоковую обработку данных. Балансировка нагрузки и шардирование баз данных позволяют распределять запросы по тысячам серверов. Инженеры упомянули, что ключевой принцип — декомпозиция задачи: вместо того чтобы обрабатывать все события глобально, система разбивает их на локальные группы (например, по региону или по кругу друзей).

Также важно кэширование. Meta хранит предварительно агрегированные результаты для популярных Reels, чтобы не пересчитывать их каждый раз. Это снижает задержку до миллисекунд. Однако для новых или малоизвестных видео система должна вычислять пузырьки на лету, что требует оптимизации запросов к графу друзей.

Почему Friend Bubbles — это сложно

На первый взгляд, показать аватарки друзей — тривиальная задача. Но на платформе с миллиардами пользователей и миллионами активных Reels в день она превращается в головоломку. Каждое действие (лайк, комментарий, просмотр) генерирует событие. Если для каждого видео проверять всех друзей пользователя, нагрузка на базы данных станет критической. Meta решает это с помощью графовых баз данных, которые оптимизированы для запросов связей между пользователями.

Другой вызов — согласованность данных. Если друг поставил лайк, но его аватарка не появилась мгновенно, пользователь может заметить задержку. Meta стремится к задержке менее секунды, но при этом должна гарантировать, что данные не потеряются. Для этого используются распределённые транзакции и механизмы повторной обработки ошибок.

Как Meta тестирует такие функции?

Перед запуском Friend Bubbles инженеры проводили A/B-тестирование на небольших группах пользователей. Они измеряли не только производительность, но и влияние на вовлечённость: увеличивается ли время просмотра, количество реакций и повторных визитов. Оказалось, что социальный контекст действительно повышает активность, но только если пузырьки не отвлекают от контента. Поэтому дизайн был оптимизирован так, чтобы аватарки были заметны, но не навязчивы.

Также тестировались разные алгоритмы отбора друзей. Например, показывать только тех, кто недавно был онлайн, или тех, с кем пользователь часто взаимодействует. Meta выбрала гибридный подход, который учитывает и свежесть действия, и силу связи.

Кого затронет эта функция

Friend Bubbles уже доступна пользователям Facebook и Instagram. Для обычных людей это способ увидеть, что контент интересен их друзьям, и быстрее включиться в обсуждение. Для разработчиков — пример того, как строить масштабируемые социальные функции. Meta делится опытом, чтобы сообщество могло учиться на их ошибках и успехах.

Для самой Meta это инструмент увеличения времени просмотра Reels и укрепления социальных связей. В эпоху, когда конкуренция за внимание пользователей растёт, такие фичи помогают удерживать аудиторию. Кроме того, они собирают данные о поведении, которые можно использовать для рекомендаций.

Что пока неизвестно

Meta не раскрыла точные технические детали реализации, такие как используемые стеки технологий (например, конкретные базы данных или фреймворки). Также неизвестно, планируется ли расширение функции на другие типы контента, кроме Reels, например, на фото или длинные видео. Возможно, в будущем Friend Bubbles появится и в других разделах, но пока это остаётся в секрете.

Инженеры лишь намекнули, что они работают над улучшением алгоритма, чтобы пузырьки стали ещё более персонализированными. Например, система могла бы показывать не только друзей, но и подписчиков с похожими интересами. Однако это потребует ещё более сложной инфраструктуры и обработки данных.

Итоги

Friend Bubbles — яркий пример того, как простая с виду функция требует глубокой инженерной работы. Meta показывает, что даже небольшие социальные улучшения могут быть сложными в реализации на масштабе. Для пользователей это означает более живой и социальный опыт, а для разработчиков — ценные уроки по построению распределённых систем. Следите за подкастом Meta Tech Podcast, чтобы узнать больше о таких инсайтах.