System design-интервью Backend-разработчика: корпоративный чат
Кандидат проектирует внутренний чат: формулирует требования, выбирает постоянное соединение и рассуждает о хранилище сообщений, индексах и чтениях. Интервьюер задаёт уточняющие вопросы и проверяет ход проектирования.
- Опубликовано на YouTube:
- Просмотры на YouTube: 1,1 тыс.
- Лайки на YouTube: 12
Коротко о видео
Видео показывает system design-секцию технического интервью, которую ведёт backend-разработчик из команды авторизации Avito. Кандидату предлагают спроектировать внутренний корпоративный мессенджер, когда готовые решения не подходят. Интервьюер просит начать с уточняющих вопросов и фиксирует требования. Затем стороны обсуждают протокол связи: кандидат предлагает постоянное двустороннее соединение через WebSocket и предполагает отдельную инфраструктуру для множества подключений. В хранилище сообщений интервьюер уточняет потребность в индексе, виды индексов и различие между нагрузкой на чтение и запись. Финальный архитектурный блок проходит через пользовательский путь открытия списка чатов, кэширование, непрочитанные сообщения и выбор базы данных. Несмотря на рекламный финал, основная часть — содержательный разбор проекта.
Затронутые темы
Что взять на заметку
- System design начинается с требований и границ задачи, а не с выбора технологий.
- Для чата с двусторонними событиями нужен протокол постоянного соединения, например WebSocket.
- Индекс выбирают под реальные запросы и структуру доступа, а не абстрактно.
- Архитектура чата должна учитывать преобладание чтений, список диалогов и счётчики непрочитанного.
- Нужно проговаривать пользовательский путь, чтобы определить нужные кэши и данные экрана.