Конструирование упрощённой соцсети в стиле Twitter

Разделите записи, подписки и построение ленты; при большом числе читателей обычно нужен гибрид push и pull. Выбор определяется распределением подписчиков, а не только общим DAU.

Короткий ответ

Что ответить на собеседовании

Разделите записи, подписки и построение ленты; при большом числе читателей обычно нужен гибрид push и pull. Выбор определяется распределением подписчиков, а не только общим DAU.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо спроектировать упрощённую версию микроблогинговой платформы, похожей на Twitter/X, реализующую базовый набор функций:

  • Создание записей (твитов) пользователями.

  • Подписка (following) на другие аккаунты.

  • Формирование новостной ленты (feed), содержащей:

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

Ответ

Разделите записи, подписки и построение ленты; при большом числе читателей обычно нужен гибрид push и pull. Выбор определяется распределением подписчиков, а не только общим DAU.

Обычные публикации асинхронно добавляйте в ленты подписчиков, а посты очень популярных авторов подмешивайте при чтении. Храните стабильные ID, используйте курсорную пагинацию и идемпотентные события. Хронологическая и рейтинговая ленты требуют разных правил порядка и обновления курсора. Учтите удаление, блокировки, отписки, модерацию, кэш и восстановление очередей; оцените реальный fan-out и пиковый трафик до выбора шардирования.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее