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

media-service (C4 Level 3)

Ответственность

  • Рендер PNG/WebP игрового поля
  • Хранение URL в S3/MinIO
  • Шаблоны для dice_board (сетка, фишки, подсветка)

Компоненты

flowchart TB
    subgraph media [media-service]
        API[Media API]
        Renderer[Board Renderer]
        TemplateEngine[Template Engine]
        S3Client[S3 Client]
        Cache[Render Cache]
    end
    API --> Renderer
    Renderer --> TemplateEngine
    Renderer --> Cache
    Renderer --> S3Client
    S3Client --> S3[(MinIO/S3)]
Компонент Описание
Board Renderer Pillow / Cairo — 6×6 grid
Template Engine Assets: cell, token colors, highlight
Render Cache Hash(state) → skip re-render if same
S3 Client Upload, presigned/public URL

dice_board render input

{
  "board": [[null, "p1", ...], ...],
  "highlights": [[3, 5], [5, 3]],
  "dice": [4, 2],
  "current_player": "p1"
}

Output

  • PNG 512×512 or 1024×1024
  • WebP variant for web
  • Max 1 MB (NFR-022)

FR

FR-006, FR-038, FR-039