Архитектура, понятная IT-командам
Target architecture для модульной commerce-платформы: API-first, BFF, событийные интеграции, наблюдаемость и безопасная multitenant-модель без публичных обещаний по масштабу и latency.
Принципы архитектуры
Headless
Полное разделение frontend и backend через API.
Modular
Доменные сервисы и границы ответственности проектируются на discovery под текущий контур.
Schema-driven
Schema-driven UI для форм и сценариев, где метаданные действительно снижают стоимость изменений.
Event-driven
Асинхронные события, outbox, retry, DLQ и replay как инженерный подход для интеграционных сценариев.
account_tree Architecture Overview
Композитная target architecture с доменными сервисами, API Gateway и BFF. Хореография сервисов, синхронные API и асинхронные события выбираются по нагрузке, критичности данных и интеграционным ограничениям.
PIM / Catalog
Product Information Management. Отвечает за структуру каталога, атрибуты, вариации и ценообразование. Интеграция с ERP.
OMS / Checkout
Order Management System. Жизненный цикл заказа, резервирование остатков, маршрутизация доставки, сплитование.
CRM / Loyalty
Профили B2B-клиентов, персональные условия, иерархии организаций, лимиты, программы лояльности.
grid_view UI Schema
Schema-driven и server-driven подходи применяются там, где нужны управляемые формы, витрины и админ-сценарии; изменения проходят через версии схем, тестирование и rollout-процесс.
- check_circle Design Tokens: Единый источник истины для стилей (цвета, типографика, отступы). Транслируются в CSS/SwiftUI/Compose.
- check_circle Component Registry: Строго типизированный набор UI-компонентов (кнопки, карточки, списки), управляемых через JSON-схему.
- check_circle Controlled rollout: Изменения схем и лейаутов проходят через версионирование, feature flags и проверку совместимости.
{
"type": "Screen",
"id": "product_detail",
"layout": {
"type": "Column",
"children": [
{
"type": "ProductGallery",
"props": { "images": "$product.media" }
},
{
"type": "AddToCartButton",
"props": {
"action": "ADD_TO_CART",
"payload": { "sku": "$product.sku" }
}
}
]
}
}
layers BFF Layer (Backend-for-Frontend)
Промежуточный слой агрегации, который упрощает контракты Web, Mobile и Admin и снижает связанность клиентских приложений с доменными сервисами.
Специфичные контракты
Отдельные BFF для Web, Mobile App и Admin-панелей. Оптимизация payload'а под конкретный канал, агрегация данных из нескольких доменов (GraphQL или REST с field filtering).
Идемпотентность и API стандарты
Идемпотентная обработка мутирующих запросов через Idempotency-Key в target architecture. Redis может использоваться для кэширования агрегированных представлений (read-heavy сценарии), а API-контракты описываются через OpenAPI.
dynamic_feed Event Bus & Async Messaging
Асинхронное взаимодействие проектируется как Publish-Subscribe или command/event flow на базе Kafka, когда это оправдано требованиями интеграций и операционной моделью.
-
Event-driven Model: Сервисы могут публиковать доменные события (например, `OrderCreated`, `PriceUpdated`) в Kafka. Event Sourcing и CQRS рассматриваются как варианты для отдельных доменов, а не как обязательная схема для всей платформы.
-
Kafka & Reliability: Kafka рассматривается как паттерн для партиционирования, масштабирования и устойчивой обработки событий; параметры доставки и повторов согласуются в target architecture.
-
Retries & DLQ Logic: Политики повторов, backoff, Dead Letter Queue (DLQ) и replay-процедуры задаются в target architecture с учетом идемпотентности и операционной поддержки.
verified_user Security & Identity
OIDC / OAuth 2.0
Единая точка аутентификации (SSO) через Identity Provider. Выдача JWT-токенов с необходимыми claims для авторизации.
RBAC / ABAC
Ролевая и атрибутная модель управления доступом. Строгая проверка пермиссий на уровне API Gateway и внутри каждого сервиса.
Audit & Secrets
Vault/KMS для секретов, audit trails для критичных действий и evidence-пакеты для security review по запросу.
monitoring Stack Ops & Observability
Tech Stack
- Backend Framework .NET 8/9, C#
- Web / Admin Next.js / React
- Orchestration Kubernetes (K8s)
- Databases PostgreSQL
- Caching Layer Redis
- Message Broker Apache Kafka
- Security OIDC, RBAC/ABAC, Vault/KMS
Observability
Observability-first подход: метрики, логи и трассировки проектируются вместе с SLO/SLA, которые обсуждаются на discovery.
- analytics Metrics: Сбор метрик с помощью Prometheus и визуализация дашбордов в Grafana.
- subject Logs: Централизованный сбор структурированных логов через Loki или сопоставимый стек.
- linear_scale Traces: Distributed tracing через OpenTelemetry и Tempo/Jaeger.