Проектирование масштабируемого мессенджера‑аналогa Telegram

25 млрд сообщений в сутки — около 289 тыс. сообщений/с в среднем, без учёта доставки адресатам. Архитектуру нужно рассчитывать по пикам и fan-out.

Короткий ответ

Что ответить на собеседовании

25 млрд сообщений в сутки — около 289 тыс. сообщений/с в среднем, без учёта доставки адресатам. Архитектуру нужно рассчитывать по пикам и fan-out.

Подробный разбор

Ответ с пояснениями

Условие

Требуется разработать архитектурное решение для сервиса обмена сообщениями, включающего основные возможности: личные диалоги и групповые чаты (не более 500 участников), передачу текстовых сообщений и медиа‑файлов, постоянное хранение истории с поддержкой поисковых запросов, отображение статуса онлайн и отправку push‑уведомлений. Система должна выдерживать нагрузку в 500 млн активных пользователей в день (DAU) и обрабатывать около 25 млрд сообщений в сутки.

Ответ

25 млрд сообщений в сутки — около 289 тыс. сообщений/с в среднем, без учёта доставки адресатам. Архитектуру нужно рассчитывать по пикам и fan-out.

Клиенты держат соединения с gateway; сервис сообщений проверяет участников, назначает порядок внутри диалога и устойчиво сохраняет сообщение до подтверждения. Client message ID обеспечивает дедупликацию повторов. Данные шардируют по conversation_id, сохраняя локальный порядок, а не глобальный на весь сервис.

Доставку онлайн, push и поисковую индексацию запускают событиями после сохранения. Медиа размещают в объектном хранилище/CDN с проверкой доступа; presence хранит краткоживущие heartbeat. Для групп до 500 участников отдельно оценивают цену fan-out. Нужны курсорная история, backpressure, репликация и определённые RPO/RTO; поисковый индекс может обновляться с задержкой. Сквозное шифрование меняет возможности серверного поиска и требует отдельного решения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее