Проектирование Messenger
Комментарий кандидата. Что проверяем: кандидат понимает, как построить распределенную масштабируемую систему и как ее мониторить.
1. Задача: Проектируем Messenger Avito. Представим себе, что его сейчас нет, и нужно спроектировать Backend-часть.
2. Как реализовать отправку сообщения?
3. Как реализовать прием и чтение сообщения?
4. Как организовать связь чатов с объявлениями пользователей, чтобы инициализация происходила при переходе с конкретного объявления по кнопке "Написать"?
5. Как реализовать peer-to-peer общение покупателя с продавцом?
6. Как организовать просмотр списка чатов в контексте шардирования (ключ шардирования не должен конфликтовать с требованием…