ЛентаСтатьиЗаметкиКурсы
Рецепты

Мессенджер на Go + React

Полный цикл мессенджера: Go API на PostgreSQL, WebSocket-realtime, личные диалоги и группы, React-клиент на FSD — до выката на VM.

Состав трека

  1. 1
    Мессенджер: P2P, группы и продакшен

    Личные диалоги и группы поверх Go + PostgreSQL: порядок через seq, sync после реконнекта, read-receipts, Web Push — и выкат на VM с health-гейтом и откатом.

  2. 2
    Мессенджер как микросервисы: шина, event-service и независимые деплои

    Эволюция монолита в четыре сервиса по bounded contexts: RS256 + JWKS, конверт событий с резолвом получателей, event-service ×N на Redis Streams с насыщением кадров, notification-worker — и переезд по этапам strangler с откатом на каждом шаге.

О треке

Трек о том, как из учебного чата вырастить настоящий мессенджер — и довести его до продакшена: личные диалоги с непрочитанными и статусами «прочитано», группы с ролями и приглашениями, доставка сообщений без потерь после разрыва связи, уведомления — и собственный сервер с релизным конвейером.

Стек — рабочая лошадка рынка: 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-мессенджер». Полезен как сравнение подходов: там платформа берёт инфраструктурные проблемы на себя, здесь вы решаете их сами — и именно поэтому начинаете их понимать.