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

Архитектура Chessboard.Panoramas

Назначение

Краткое описание компонентов микросервиса и потоков данных.

Цель

Понять границы сервиса, точки входа (API, Kafka) и взаимодействие с внешними пакетами.

Компоненты

  • Admin API — HTTP API для управления точками съёмки панорам и очередью задач (контроллеры PanoramaPoints, QueueTasks). Маршрут: api/{tenantId}/chessboard/panoramas/....
  • Developers API — отдельный API для разработчиков (на текущий момент контроллеры не описаны).
  • Background — потребление Kafka-событий из пакета Talent.Chessboard.Events (создание/обновление проектов, зданий, планировок, объектов); синхронные сервисы (ProjectEntitySyncService, BuildingEntitySyncService, LayoutEntitySyncService); обработка MediatR-уведомлений и саг (файлы).
  • Migrator — миграции БД (PostgreSQL, схема Chessboard Panoramas).
  • Database — ChessboardPanoramasDbContext (сущности проектов, зданий, планировок, объектов, точек съёмки, файлов панорам, очереди задач; Outbox, Saga).

Внешние зависимости

  • Talent.Chessboard.Events — топики Kafka с событиями AfterChessboardProjectCreated/Updated, AfterChessboardProjectBuildingCreated/Updated, AfterChessboardProjectPropertyLayoutCreated/Updated, AfterChessboardProjectPropertyObjectCreated/Updated. Consumers в Background подписываются на эти топики и обновляют локальные сущности.

Схема взаимодействия