Архитектура 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 подписываются на эти топики и обновляют локальные сущности.