Для обеспечения отказоустойчивости видеохостинга при миллионных просмотрах мы спроектировали распределенную микросервисную архитектуру с разделением обязанностей по стеку:
- Микросервис чатов (Kotlin + Spring Boot): Архитектура обмена сообщениями вынесена в отдельный высокопроизводительный сервис. Использование Kotlin и реактивного стека Spring Boot (WebFlux / WebSockets) позволило изолировать тяжелую long-polling нагрузку от основного бэкенда. Сервис обеспечивает мгновенную маршрутизацию сообщений, асинхронную обработку статусов «доставлено/прочитано» и индикацию активности собеседника («печатает...»).
- Высокоскоростной слой на Go: Обработка тяжелых бинарных данных, трансляция видеопотоков, а также логика работы умного парсера для импорта роликов из TikTok в обход ограничений реализованы на Go, что снизило время отклика (TTFB) медиа-контура.
- Бизнес-логика и социальный граф на Symfony: Модерация диалогов, структура связей пользователей (черные списки, права на отправку сообщений), профили, а также вся экономическая модель геймификации разработаны на фреймворке Symfony.
- Шина асинхронных задач на RabbitMQ (RmQ): Процессы транскодирования видео через FFmpeg и отправка push-уведомлений о новых личных сообщениях пользователям, находящимся в офлайне, буферизируются через очереди RabbitMQ. Это защищает систему от пиковых нагрузок в периоды высокой кадровой или сетевой активности.
- Кэширование и сессии в Redis: Мгновенный доступ к последним сообщениям в диалогах, временное хранение статусов пользователей, ленты рекомендаций и счетчики просмотров в реальном времени обеспечиваются за счет in-memory СУБД Redis.
- Единое ядро интерфейса на Flutter: Мобильные приложения под iOS, Android и веб-версия для Telegram Mini App написаны на Flutter. Мы объединили кастомную логику видеоплеера, редактора и плавный интерфейс чатов в рамках единой кодовой базы.
- Панель модерации на Vue 3: Мощная SPA-админка для контроля контента, обработки жалоб пользователей на сообщения/видео и управления конкурсами реализована на Vue 3.