1
Проектирование Messenger Avito
Задача 1
Проектируем Messenger Avito. Представим себе, что его сейчас нет, и нужно спроектировать Backend-часть.
Frontend/mobile часть не рассматриваем в деталях, но стоит держать в голове типичные юзкейсы (кнопка "Написать" на странице объявления, списки, список чатов пользователя).
Функциональные требования:
- Отправить сообщение
- Принять и прочитать сообщение
- Чаты связаны с объявлениями пользователей, инициализация чата происходит при переходе к конкретному объявлению по кнопке "Написать"
- Чаты являются peer-to-peer — для общения покупателя с продавцом
- Просмотр списка чатов (вскользь без проектирования самого API — обсуждаем в контексте шардирования, ключ…