System Design Space
Граф знанийНастройки

Обновлено: 23 июня 2026 г. в 02:35

Инфраструктура социальной платформы

средний

Классическая задача: лента, публикация, изоляция отказов, плавная деградация и эксплуатационная устойчивость социальной платформы.

Социальная платформа кажется единым продуктом только снаружи. Внутри это лента, публикация, граф связей, уведомления, модерация и эксплуатационные контуры, которые должны расти вместе, но не падать вместе.

Глава помогает провести границу между общими платформенными возможностями и отдельными продуктовыми сервисами, а также понять, где оправдан единый инфраструктурный слой, а где полезнее независимые контуры.

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

Гибридная раздача

Одна и та же стратегия раздачи не подходит всем пользователям: обычная аудитория и популярные авторы требуют разного баланса между предвычислением, чтением и кэшированием.

Изоляция отказов

Ранжирование, модерация и уведомления не должны ломать базовую доступность ленты, поэтому зависимые контуры нужно отделять заранее, а не уже во время инцидента.

Плавная деградация

Во время пиков и частичных отказов платформа должна уметь упростить выдачу и отключить вторичные функции, сохранив основной пользовательский сценарий.

Цели уровня сервиса

Надёжность здесь определяется не здоровьем отдельного сервиса, а тем, открывается ли лента вовремя, публикуется ли пост без задержек и насколько быстро команда замечает деградацию.

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

Источник

Acing the System Design Interview

Глава 14: взгляд на социальную платформу с акцентом на эксплуатационную устойчивость всей системы.

Читать обзор

Где этот паттерн критичен

  • Twitter/X: массовая , и защита от всплесков вокруг популярных аккаунтов.
  • Instagram / Threads: тяжёлая медиа-лента, где модерация и уведомления должны деградировать управляемо, а не ронять выдачу целиком.
  • TikTok: персонализация дорогая, а ленту всё равно нужно отдавать быстро — иначе цена качества модели превращается в задержку для пользователя.
  • LinkedIn / Reddit: здесь приходится держать баланс между релевантностью, свежестью и предсказуемостью выдачи, не жертвуя стабильностью платформы ради одного из трёх.

Функциональные требования

Базовые API и пользовательские сценарии

  • POST /posts - публикация контента
  • GET /feed - получение персональной ленты
  • POST /interactions - лайки, комментарии и репосты
  • POST /relationships - подписка и отписка

Платформенные возможности

  • Гибридная раздача ленты для обычных пользователей и популярных авторов
  • Проверки модерации и продуктовых политик до попадания контента в выдачу
  • Отдельные контуры уведомлений и ранжирования с продуманными резервными режимами
  • Эксплуатационные контуры: инструкции на случай инцидентов, защитные ограничения релизов и безопасные повторные прогоны

Нефункциональные требования

ТребованиеЦелевое значениеОбоснование
Задержка открытия ленты, 95-й перцентиль (P95)< 250msКлючевой пользовательский сценарий, который напрямую влияет на удержание аудитории
Задержка подтверждения публикации, 95-й перцентиль (P95)< 400msБыстрая обратная связь при создании контента
Доступность платформы99.95%Платформа критична для ежедневной пользовательской активности
Пики вокруг популярных авторовБез каскадных отказовЭкстремальные нагрузки при массовой раздаче новых постов
Управление бюджетом ошибокРелизы по целям надёжностиКонтроль риска релизов и своевременное включение деградационных режимов

Главный здесь проходит между глубиной персонализации и : чем больше сигналов учитывает ранжирование, тем дороже открыть ленту. И судить систему стоит по итоговой пользовательского пути, а не по тому, что отдельные сервисы выглядят здоровыми по своим внутренним метрикам.

Архитектура высокого уровня

Теория

Twitter/X

Практический кейс ленты: стратегия раздачи постов, топология кэшей, ранжирование и нагрузочные компромиссы.

Читать обзор

Архитектура высокого уровня

публикация, выдача ленты и контур эксплуатационной устойчивости

Контур продуктовых сервисов

продуктовые сервисы и граф социальных связей

Сервис публикации
создание и обновление контента
Сервис ленты
сборка выдачи
Сервис ранжирования
персонализация
Сервис графа
подписки и связи

Схема показывает контуры публикации, выдачи ленты и эксплуатационного управления социальной платформой.

Архитектура разделяет пользовательский и управляющий . Это уменьшает , снижает избыточную между сервисами и делает поведение платформы устойчивее под всплесками нагрузки.

Путь записи и путь чтения

Путь записи и путь чтения

Как публикация проходит через платформу и как лента собирается под высокой нагрузкой на чтение.

1
Публикация поста
2
Шлюз и аутентификация
3
Сервис публикации
4
Асинхронная раздача
5
Обновления для аудитории
Путь записи: пост проходит проверку, надёжно сохраняется и затем расходится по асинхронным контурам ленты, уведомлений и модерации.

Ключевые точки пути записи

  • Сначала пост надёжно фиксируется в хранилище, а уже потом расходится по асинхронным контурам.
  • Модерация и уведомления обычно работают асинхронно и не должны ломать базовую доступность ленты.
  • Публикации популярных авторов требуют управляемой раздачи, чтобы не перегружать потребителей.

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

Устойчивость и эксплуатация

Глубже

Наблюдаемость и мониторинг

Пользовательские цели надёжности, трассировки, бюджеты ошибок и эксплуатационные циклы принятия решений.

Читать обзор

Контракт по целям надёжности

Платформенные контуры должны быть привязаны к пользовательским и измеряться через , а не через изолированные внутренние метрики отдельных сервисов:

feed_open_slo = latency_p95 + error_rate + freshness
publish_slo   = ack_latency + durability + moderation_delay
  • ограничивает рискованные релизы.
  • Покрытие трассировками ускоряет разбор первопричины инцидента.
  • помогают видеть задержку, трафик, ошибки и насыщение ресурсов.

Стратегия деградации

  • и размыкатели цепи отделяют ранжирование и модерацию от базового пути выдачи ленты.
  • переводит систему на более простой порядок сортировки, если персонализация деградирует.
  • Сброс части нагрузки позволяет временно отключать второстепенные функции под насыщением ресурсов.
  • и приоритизация критичных пользовательских сценариев помогают переживать инциденты без общего отказа.

Риски и типовые ошибки

  • Слишком большой радиус поражения у популярных авторов: неограниченная раздача постов перегружает зависимые сервисы.
  • Избыточная связанность ранжирования: сбой ML-контура не должен ломать базовую доступность ленты.
  • Слабая интеграция модерации: запрещённый контент может попасть в выдачу до применения политик.
  • Отсутствие резервного режима: без деградации частичный сбой быстро превращается в общий отказ.
  • Слепота по метрикам: сервисы выглядят здоровыми, но пользовательский путь уже заметно деградировал.

Что важно проговорить на интервью

  • Где проходят границы сервисов и какие контуры обязаны переживать отказы соседних зависимостей.
  • Почему система сочетает раздачу при записи и раздачу при чтении для разных типов пользователей.
  • Как выглядит резервный режим ленты при деградации ранжирования или модерации.
  • Какие цели и показатели уровня сервиса действительно управляют релизами и процессом реагирования на инциденты.

Связанные главы

  • Twitter/X - Практический кейс социальной ленты: массовая раздача постов, ранжирование, кэширование и пиковые нагрузки.
  • Event-Driven Architecture - Как развязать публикацию, сборку ленты и уведомления через события, чтобы масштабировать и ронять их по отдельности.
  • Паттерны отказоустойчивости - Изоляция отказов и плавная деградация — чтобы сбой одной зависимости не превращался в пользовательский инцидент.
  • Наблюдаемость и мониторинг - Цели надёжности и трассировки, без которых здоровые дашборды сервисов скрывают деградацию пользовательского пути.
  • SRE Book - Бюджет ошибок как механизм: он решает, когда выкатывать новое, а когда тормозить ради надёжности.
  • Notification System - Смежный контур вовлечения с той же логикой: асинхронная доставка и заранее продуманные режимы деградации.

Чтобы отмечать прохождение, включи трекинг в Настройки