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 DCS 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 the DCS. When it receives objects from DccModel, it converts them 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. |