Войти Регистрация
System design

23. Лента новостей ВКонтакте

Сложная

Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.

Человек открывает приложение и видит посты друзей и сообществ, на которые подписан. Новый пост друга должен появиться в ленте за 5–10 секунд.

Для расчёта: 55 млн человек заходят в день, каждый открывает ленту в среднем 10 раз, вечером нагрузка втрое выше средней. В день публикуют 20 млн постов.

У обычного человека 200–300 друзей и подписок. У крупного паблика с мемами или у сообщества футбольного клуба подписчиков 5–10 млн.

В работе: Лента — главный экран соцсети: от её задержки и свежести зависит, сколько времени человек проведёт в приложении.

Как проверяем Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
лентаfan-outкэшранжированиешардирование

Источник: на задачах VK: лента друзей и сообществ. Условие пересказано своими словами.

  1. Уточнить требования — Что спросить у интервьюера до схемы?
  2. Оценить нагрузку
  3. Модель раздачи — Как собирать ленту при таком разбросе числа подписчиков?
  4. Хранилище готовой ленты — Где держать список последних 500 записей ленты каждого человека?
  5. Схема — Опишите путь поста от публикации до экрана подписчика и путь открытия ленты.