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

Архитектура платформы

Ландшафт системы

Архитектурные инварианты

  • Каждый stateful-сервис владеет своей базой данных и миграциями.
  • Сервис никогда не читает базу другого сервиса напрямую.
  • Каждая команда содержит actionId, tenantId, correlationId и idempotencyKey.
  • Подтверждение привязано к хэшу неизменяемого action payload.
  • Финансовая операция никогда не выполняется из свободного вывода модели.
  • Temporal владеет durable command workflows; Kafka распространяет domain и integration events.
  • События доставляются как минимум один раз, consumers идемпотентны.
  • Transactional outbox согласует изменения локального состояния и публикацию событий.
  • Контракты обратно совместимы в пределах major-версии и проверяются в CI.
  • Все сервисы передают W3C Trace Context и отправляют данные OpenTelemetry.
  • Channel Gateway не хранит диалог и не оркестрирует бизнес-сервисы.
  • Conversation Service владеет состоянием диалога и цепочкой Agent → Action.
  • Agent Runtime предлагает действие, а Action Service остаётся источником его состояния и payload hash.
  • Widget SDK отображает контракт ответа, но никогда не вызывает MCP напрямую.

Границы репозиториев

Платформа использует polyrepo-модель. Каждый deployable-сервис, SDK, policy bundle и infrastructure control plane находятся в отдельном репозитории. Платформа связывает их через совместимые с Backstage метаданные каталога и версионируемые контракты; она никогда не собирает их вместе.