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.