Перейти к основному содержимому

Обзор архитектуры

«Оптима» — сервис единого окна для селлеров Wildberries. Продукт живёт в одном монорепозитории и состоит из четырёх развёртываемых приложений:

ПриложениеКаталогСтекДомен (prod)
Веб-приложениеfrontend/Next.js 16 (App Router), React 19, TanStack Queryhttps://app.optimawb.ru
APIbackend/NestJS 11 (TypeScript), модульный монолит, PostgreSQL 16 + pgvector, Redis, BullMQhttps://api.optimawb.ru
Лендингlanding/Vite + React 19, статическая сборка за nginxhttps://optimawb.ru
Портал документацииdocs-site/Docusaurus + Compodoc бэкенда, статика за nginxhttps://docs.optimawb.ru

Все приложения разворачиваются в Coolify на VPS заказчика; PostgreSQL и Redis — управляемые сервисы Coolify. Подробнее — Развёртывание.

Контекстная диаграмма​

Ключевые свойства:

  • Один бэкенд-процесс обслуживает и HTTP API, и фоновые воркеры BullMQ, и планировщик расписаний (см. Бэкенд, Фоновые задачи).
  • Браузер ходит только в API api.optimawb.ru; в Wildberries и к LLM-провайдеру обращается исключительно бэкенд. Токены кабинетов WB хранятся зашифрованными (AES-256-GCM, см. Безопасность).
  • Redis используется в трёх ролях: кэш (CacheService), общие счётчики (rate-limiter WB, лимитер входящих запросов, суточная квота LLM, per-account gate) и брокер очередей BullMQ (на выделенных соединениях).
  • Контракт API — OpenAPI (backend/openapi.json, Swagger UI /api/docs); фронтенд генерирует из него типизированный клиент (npm run api:generate).

Фундаментные подсистемы (F1–F8)​

Фундамент — эпики Jira, на которые опираются все функциональные модули.

ЭпикНазначениеГде в коде
F1Платформа и каркас: конфиг, ошибки, валидация, пагинация, health, Swaggerbackend/src/core/{config,errors,validation,pagination}, src/health, src/swagger.ts
F2Аутентификация, RBAC, кабинеты WB, доступ на уровне брендаmodules/auth, modules/users, modules/wb-accounts, modules/brand-access, core/crypto, core/security
F3Ядро интеграции с WB: API-клиент, лимиты, ретраи, ошибкиmodules/wb-api
F4Платформа данных: схема, миграции, базовые сущности, кэш, партиции, пересчёт агрегатовcore/database, core/redis, core/cache, core/partitioning, core/re-aggregate, modules/catalog
F5Фоновые задачи и планировщикcore/queue, core/schedule
F6Логирование, метрики, аудитcore/observability, core/metrics, core/queue-observability, modules/audit-log
F7Общий слой LLM: провайдер, промпты, RAGmodules/llm, modules/prompt-templates, modules/rag
F8DevOps: Docker, окружения, CI/CD, секреты*/Dockerfile, docker-compose.yml, .github/workflows/

Карта функциональных модулей (ТЗ 5.1–5.15)​

ТЗМодульМодуль бэкенда (backend/src/modules/…)Раздел UI (/app/wb/:accountId/…)
5.1Оцифровка продаж и финансовый учётdigitizationdigitization
5.2Управление ценами и скидкамиpricing (+ общий каталог catalog)prices
5.3Репрайсерrepricerrepricer
5.4Автобиддерautobidderautobidder
5.5Автоответы на отзывы и вопросы, жалобыautoreplyauto-replies
5.6РНПrnprnp
5.7Бухгалтерияaccountingaccounting
5.8Бронировщик поставокbooking (+ notifications)slot-booker
5.9ИИ-помощникai-assistantai-assistant
5.10ИИ-агент (маркетолог)ai-agentai-agent
5.11Товарный учётinventory (+ синк карточек в catalog)inventory
5.12Юридический блок (досудебные претензии)legallegal
5.13Генерация контентаcontentcontent-generation
5.14A/B-тестированиеab-testab-testing
5.15База знанийknowledge-baseknowledge-base

Бизнес-описание каждого модуля — в разделе Возможности.

Разделы архитектуры​

  • Бэкенд — модульный монолит, список модулей, конвенции, глобальный конвейер.
  • Данные — PostgreSQL, миграции, партиции, pgvector, Redis-кэш, основные таблицы.
  • Фоновые задачи — все очереди BullMQ и расписания, конкурентность, gate кабинета.
  • Интеграция с Wildberries — клиент WB API, token-bucket, 429, ретраи, таймауты.
  • ИИ-подсистема — LLM-провайдер, лимиты расхода, RAG, защита от prompt injection.
  • Безопасность — аутентификация, сессии, RBAC, шифрование, аудит.
  • Наблюдаемость — логи, correlation-id, метрики Prometheus, health-checks.
  • Фронтенд — app shell, маршруты, навигация, API-клиент, сессия.
  • Развёртывание — окружения, Coolify, GHCR, GitHub Actions.

См. также: журнал архитектурных решений (ADR), справочник API, документация кода — Compodoc.