Контейнеры (C4 Level 2)
Диаграмма
См. C4 Containers.
Контейнеры
| Контейнер | Технология | Ответственность |
|---|---|---|
| web-app | Next.js 15 | UI, WebSocket client, Telegram Login Widget |
| telegram-bot | aiogram 3.x | Команды, FSM, inline-кнопки, медиа |
| api-gateway | Nginx / Traefik | TLS, routing, rate limit |
| auth-service | FastAPI | JWT, guest, Telegram OAuth |
| session-service | FastAPI | Сессии, участники, коды |
| game-runtime-service | FastAPI | Плагины, ходы, audit |
| media-service | FastAPI | Рендер поля, S3 |
| realtime-service | FastAPI + WS | WebSocket hub, Pub/Sub |
| postgresql | PostgreSQL 16 | Persistent data |
| redis | Redis 7 | Cache, presence, pub/sub |
| nats | NATS JetStream | Event bus |
| object-storage | MinIO / S3 | Изображения |
Коммуникация
flowchart LR
Web[web-app] --> Gateway[api-gateway]
Bot[telegram-bot] --> Session[session-service]
Bot --> Game[game-runtime]
Gateway --> Auth[auth-service]
Gateway --> Session
Gateway --> Game
Gateway --> Media[media-service]
Web --> Realtime[realtime-service]
Game --> NATS[nats]
Game --> Redis[redis]
Realtime --> Redis
Bot --> NATS
Phase 1: Modular Monolith
На MVP все FastAPI-сервисы may деплоиться как один процесс с модулями:
Отдельные контейнеры bot, postgres, redis, nats остаются.