Skip to content

druger/social_network_system_design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

System Design социальной сети для путешественников для курса по System Design – https://balun.courses/courses/system_design

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

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

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

  • Количество пользователей: 10 000 000 DAU
  • Поведение пользователей: Один пользователь, в среднем, будет делать 5 запросов в день к приложению
  • Регионы использования приложения: страны СНГ
  • Сезонности в приложении: увеличение активности пользователей
    • Праздничные дни – 20%
    • Май – 30%
    • Лето – 50%
    • Сентябрь - октябрь – 25%
  • Условия хранения данных: храним всегда
  • Лимиты и ограничения:
    • Максимальное кол-во фото в постах – 20
    • Максимальное кол-во символов в описании – 2000
    • Максимальное кол-во символов в комментариях – 1000
    • В комментариях доступен только текст
    • Оценивать посты можно только лайками
    • При первом открытии ленты отображается 10 постов/комментариев – остальное через пагинацию
  • Временные ограничения:
    • Публикация поста – не более 1,5 с
    • Публикация комментария – не более 500 мс
    • Загрузка поста – не более 1,5 с
    • Загрузка комментариев – не более 1 с
    • Оценка поста – не более 500 мс
    • Подписка на других путешественников – не более 1 с
    • Результаты поиска – не более 3 с
    • Загрузка ленты – не более 5 с
  • Доступность приложения: приложение может быть недоступно за год не более, чем 6 часов

Оценка нагрузки

RPS, Traffic (публикация поста):

DAU = 10 000 000
в среднем пользователь будет создавать пост раз в 2 недели
RPS = 10 000 000 / 86 400 / 14 ~= 9
Traffic(медиа) = 9 * 10 МБ = 90 МБ/с 
Traffic(метаинформация) = 9 * 5 КБ = 45 КБ/с 
Traffic(итого) =  90,04 МБ/с 

RPS, Traffic (оценка поста):

DAU = 10 000 000 
в среднем пользователь будет оценивать посты каждый день
RPS = 10 000 000 / 86 400 ~= 116 
Traffic = 116 * 40 байт = 4640 байт/с  = 5 КБ/с

RPS, Traffic (комментарий поста):

DAU = 10 000 000 
в среднем пользователь будет комментировать посты раз в 2 дня
RPS = 10 000 000 / 86 400 / 2 ~= 58
Traffic = 58 * 500 байт = 29000 байт/с  = 28 КБ/с

RPS, Traffic (подписка на других путешественников):

DAU = 10 000 000 
в среднем пользователь будет подписываться раз в 3 месяца
RPS = 10 000 000 / 86 400 / 90 ~= 2 
Traffic = 2 * 50 байт = 100 байт/с

RPS, Traffic (поиск и просмотр популярных мест):

DAU = 10 000 000 
в среднем пользователь будет искать раз в месяц
RPS = 10 000 000 / 86 400 / 30 ~= 4 
Traffic = 4 * 30 МБ = 120 МБ/с

RPS, Traffic (просмотр ленты):

DAU = 10 000 000 
в среднем пользователь будет смотреть ленту каждый день
RPS = 10 000 000 / 86 400 ~= 116 
Traffic (медиа) = 116 * 20 * 500 КБ(сжатое фото) ≈ 116 * 10 МБ ≈ 1160 МБ/с ≈ 1.1 ГБ/с
Traffic (метаинформация) = 116 * 20 * 2 КБ = 4 640 КБ/с ≈ 4.53 МБ/с
Traffic (итого) = 1165 МБ/с ≈ 1.1 ГБ/с

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published