advanced

News feed

Choose fan-out-on-write or read, ranking, pagination, freshness, celebrity users, and cache invalidation. Объясняйте API, data model, bottlenecks и trade-offs.

Ленты балансируют fan-out-on-write (push, предвычисленные timeline) и fan-out-on-read (pull, запрос подписок при read). Push для обычных пользователей и быстрого read; pull или гибрид для celebrity с миллионами подписчиков без write amplification.

Storage: кеш timeline на пользователя, лог постов, ranking, курсоры пагинации и инвалидация при новых постах. Цели свежести задают TTL кеша и частичное предвычисление.

На интервью: push или pull для заданного распределения подписчиков, проблема celebrity и data model записей timeline.

Типовые ошибки: чистый push для всех и write storm; нет ranking; пагинация offset нестабильна при новых постах.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Стратегия fan-out по tier пользователей.
  • Хранение timeline и кеш.
  • Ranking и курсоры пагинации.
  • Отдельная обработка hot celebrity.