Трек о том, как из учебного чата вырастить настоящий мессенджер — и довести его до продакшена: личные диалоги с непрочитанными и статусами «прочитано», группы с ролями и приглашениями, доставка сообщений без потерь после разрыва связи, уведомления — и собственный сервер с релизным конвейером.
Стек — рабочая лошадка рынка: Go (chi, pgx) + PostgreSQL + Redis + WebSocket на бэкенде; React (FSD, effector) на фронтенде; Docker, реестр образов и release-скрипты в эксплуатации.
Как устроен трек. Два курса, один мессенджер. Первый — «Мессенджер: P2P, группы и продакшен»: 13 модулей от разворота boilerplate до защиты проекта — модель диалогов и строгий порядок сообщений, P2P и группы, синхронизация после реконнекта, клиент на FSD и выкат на VM. Второй — «Мессенджер как микросервисы»: эволюция того же монолита в четыре сервиса — user-service с RS256+JWKS, messenger-service, event-service ×N на Redis Streams, notification-worker — с переездом по этапам strangler и откатом на каждом шаге. Клиент при этом не меняется вовсе — и это часть замысла.
Предусловия. Трек Go Backend Development или сравнимый опыт: горутины, HTTP-сервер, SQL. Базовый React и TypeScript — курс ui-kit даёт больше, но не обязателен.
Boilerplate. Стартовый монорепозиторий (boilerplate/ рядом с
модулями курса): Go-бэкенд по канону all-together — cmd/ + internal/,
chi, pgx, JWT, миграции, OpenAPI-контракт с тестом «роуты ↔ спека»; фронтенд
по канону FSD-шаблона — слои, effector-модели, WS-клиент. Сверх базового
чата уже готовы реакции и стикеры — образец лёгкой фичи поверх
сообщений, не ломающей порядок и непрочитанные. Модуль 1 поможет
развернуть его за пять минут.
Альтернативный путь. Мессенджер целиком на serverless-стеке Yandex Cloud (YDB, YMQ, API Gateway, Terraform) — отдельный трек «Serverless-мессенджер». Полезен как сравнение подходов: там платформа берёт инфраструктурные проблемы на себя, здесь вы решаете их сами — и именно поэтому начинаете их понимать.