# Component Relationship Diagram ```mermaid graph TD subgraph "External" Client[HTTP Clients] GoogleMaps[Google Maps API] PG[(PostgreSQL)] FS[File System] end subgraph "SatelliteProvider" WebApi[WebApi
Program.cs endpoints] Route[RouteManagement
RouteService + RouteProcessingService] Region[RegionProcessing
RegionService + Queue + Workers] Tile[TileDownloader
GoogleMapsDownloaderV2 + TileService] DA[DataAccess
Repositories + Migrations] Common[Common
DTOs + Interfaces + Configs + GeoUtils] end Client -->|HTTP| WebApi WebApi --> Route WebApi --> Region WebApi --> Tile Route --> Region Route --> DA Region --> Tile Region --> DA Tile --> DA Tile -->|HTTPS| GoogleMaps Tile --> FS Region --> FS Route --> FS DA --> PG WebApi --> DA WebApi --> Common Route --> Common Region --> Common Tile --> Common ``` ## Component Summary | # | Component | Project | Responsibility | |---|-----------|---------|---------------| | 1 | Common | SatelliteProvider.Common | Shared DTOs, interfaces, configs, GeoUtils, common exceptions | | 2 | DataAccess | SatelliteProvider.DataAccess | Database entities, Dapper repositories, DbUp migrations | | 3 | TileDownloader | SatelliteProvider.Services.TileDownloader | Google Maps tile acquisition (GoogleMapsDownloaderV2), tile orchestration with caching (TileService) | | 4 | RegionProcessing | SatelliteProvider.Services.RegionProcessing | Region request lifecycle (RegionService), in-process queue (RegionRequestQueue), background worker (RegionProcessingService) | | 5 | RouteManagement | SatelliteProvider.Services.RouteManagement | Route creation + point interpolation + geofencing (RouteService), background worker (RouteProcessingService) | | — | WebApi | SatelliteProvider.Api | HTTP endpoints, DI configuration, startup | **Note**: the arrows `Region --> Tile` and `Route --> Region` in the diagram represent **logical** dependencies via interfaces (`ITileService`, `IRegionService`, `IRegionRequestQueue`) defined in `SatelliteProvider.Common`. There are NO compile-time `ProjectReference` entries between the three Layer-3 component csprojs — see `module-layout.md` § Allowed Dependencies.