Skip to main content

Architecture

The global dcc consists of several assemblies written in both managed- (c#) and native code (c++).

The native code and interoperability wrapper is located in the dcc repository: [https://dev.azure.com/amcsgroup/Routing/_git/DCC] The majority of the native code is shared with existing desktop dcc service, and is updated periodically to give the gdcc access to both features and bug fixes.

The communication between api and backend is handled by our distributed task queue, TS.Comms.

TS.Comms is built in several layers to make it possible to replace parts of it should we need to change some technologies. This is in part to prevent vendor lock-in, but also to protect us in case parts of the underlying technology stack becomes obsolete or abandoned by its maintainers.

On top of TS.Comms the gdcc uses a request/reply framework to streamline how the gdcc api and backends generate and handle tasks.

The api exposes REST endpoints that can be consumed by other programs. We offer a reference implementation, GlobalDcc.Api.Client, that can be installed as a NuGet package. We also offer a native implementation that can be used by native products via the DccFacade NuGet package

Below is a high-level illustration of how the different parts work together. For a full list of the projects in the gdcc see Projects in Global DCC

img