Skip to main content

Introduction

GlobalDcc is a global, multi-tenant service for providing distance calculation capabilities via a REST API.

It contains three .Net web apps:

  • GlobalDcc.Api.Server: accepts user requests and posts messages to a queue for the backend(s) to process
  • GlobalDcc.Backend.Server: listens to a queue, processes messages, and responds
  • GlobalDcc.RoadNetManager: manages road net version changes (wip: app is not feature complete)

GlobalDcc is designed to be deployed with multiple api and backend instances running side-by-side:

  • Each frontend forwards to the request queue for the roadnet (specified in the request).
  • Each backend is configured for exactly one roadnet and processes incoming messages sequentially.
  • Backends for the same roadnet may share a request queue/subscription.
  • Results are cached in a distributed cache.

The communication between apis and backends relies on dapr.

See the image below for a brief sketch of how the different components are used.

img