Перейти к содержанию

Контейнеры (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 деплоиться как один процесс с модулями:

tabletime-api/
  modules/auth/
  modules/session/
  modules/game/
  modules/media/
  modules/realtime/

Отдельные контейнеры bot, postgres, redis, nats остаются.

Связанные документы