// проблема
Что ломалось
Нужен был свой Discord-like продукт под гейминг: не веб-обёртка, а нативное окно, быстрый REST + WebSocket gateway, голосовые комнаты и медиа. Фронт и бэк — отдельные репозитории, прод-домен plynex.ru.
// решения
Что сделали
- Tauri 2 + React 19 + Vite: кастомный title bar, auth (JWT + refresh), экраны каналов и деталки сообщества.
- Go monorepo: api (REST /api/v1), gateway (WebSocket ticket → Hello/Identify/Dispatch), message (Scylla) — три воркера с внутренним токеном.
- Стек данных и связи: Postgres, Redis, NATS, Scylla, OpenSearch, MinIO (S3), LiveKit + TURN в отдельном deploy/voice.
- Прод API на https://plynex.ru/api; CORS под Tauri-origins. Клиентский WS к gateway — следующий слой поверх готового бэка.


