api | GlobalDcc.Api | Core API functionality (distributing DCC requests among backends for different road nets). |
| GlobalDcc.Api.Client | This client is used by other solutions to call the Global DCC API. |
| GlobalDcc.Api.Server | The actual API host (containerized .Net web app). |
backend | GlobalDcc.Backend | Core backend functionality: Bundles the native backends from GlobalDcc.Interop with access to cache, metrics and the GlobalRouting.Communication framework. |
| GlobalDcc.Backend.Server | The actual backend host (containerized .Net web app). |
benchmarks | DccCache.Benchmark | Project for measuring DccCache performance, I guess. |
| PerformanceTest | Performance tests, I guess. |
common | DccCache | Cache for DCC request, shared among the services. Consists of the 'actual cache', paired with a 'binary storage'. A more detailed technical description is available here on confluence. |
| DccCache.Cache | The actual cache. |
| DccCache.Storage | The binary storage: a lookup table for medium-sized binary data (velocity profiles, circumstances, etc.), which may be part of the cache lookup key. |
| DccCache.Utility | Common code used by DccCache and its child projects. |
| DccModel | The data model used when communicating with other solutions. E.g. through GlobalDcc.Api.Client. |
| DccModel.Internal | The internal data model used by Global DCC. When Global DCC receives objects from DccModel it converts it to objects from this project. It also contains functionality for (de)serializing these objects. |
| DccModel.RequestReply | Contains DCC specific implementation of abstractions from GlobalDcc.Communication.RequestReply (request, replies and related classes like factories). |
| GlobalDcc.Communication.RequestReply | Request handling. |
| GlobalDcc.Configuration | Configuration classes that are shared among services. |
| GlobalDcc.Dapr | Provides Dapr specific code for the services. Includes Dapr-based implementations of the abstractions from GlobalDcc.Communication. Should not contain DCC specific logic. Might be split from this repo together with GlobalDcc.Communication. |
| GlobalDcc.RoadNetwork | Common code for road nets and their versioning. |
dev | docker-compose | Project for starting api and backend in Docker. This is not in use. |
roadnet-manager | GlobalDcc.RoadNetManager | Functionality to manage the active version of roadnets, and to trigger and manage recalculation of caches when the roadnet changes. Will notify consumers of changes to the roadnet |
| GlobalDcc.RoadNetManager.Server | The actual road net manager host (containerized .Net web app). |
tests/api.unit | Api.Client.UnitTests | Unit tests for GlobalDcc.Api.Client. |
| Api.UnitTests | Unit tests for GlobalDcc.Api and GlobalDcc.Api.Server. |
tests/backend.unit | Backend.UnitTests | Unit tests for GlobalDcc.Backend. |
tests/common.unit | Common.Cache.UnitTests | Unit tests of the cache. |
| Common.UnitTests | Unit tests for a couple of projects in the common folder. |
tests/integration | GlobalDcc.IntegrationTests | Integration test project. The project starts containers much like dev/docker-compose starts them. |
| GlobalDcc.OldIntegrationTests | Old integration tests. Expected to be merged into (or replaced by) GlobalDcc.IntegrationTests with story 352238. |
tools | DccCache.DbUp | Containerized executable for initialing and upgrading the cache database. Named after the library it relies on: dbup. |