System Architectural Overview

Envase Trace is an event driven service that uses Envase Connect Data as the mean for communication between Envase TMS applications and the service. TMS applications will send a publish event to Envase Connect Data when they want add containers to the Envase Trace, and they will register a Web-Hook to receive notifications about new container status results.

Envase TMS applications will not communicate directly with the service. Instead, they will communicate with Envase Connect Data, which will track the information about the containers published, as well as the results history. This design will allow us to use additional tools on the data to generate reports and implement BI.

The following diagram shows the architecture of the system:

_images/system-architecture.png

Envase TMS applications will use Envase Identity Manager to authenticate and retrieve an access token that will allow them to communicate with Envase Connect Data. Envase TMS applications will be issued a client id and secret to perform this authentication process. They will use the Client Credentials workflow as described in the Authentication/Authorization topic.

Once the application has authenticated with Envase Identity Manager, they can use the access token to publish containers to Envase Connect Data. The Envase Connect Data service will notify Envase Trace Manager of the event.

Envase Trace Manager will generate a trace job and store information about that job for later use. It will also publish the current job to Envase Tracer, which will trace the container for the first time.

Envase Tracer will trace the container and retrieve the current status. That information will be sent to Envase Trace Manager, which will generate a results event for Envase Connect Data.

Envase Connect Data will then notify the TMS of the trace result through the registered Web-Hook.

From this point on, Envase Trace Manager will schedule new traces of containers based on the results received. This means that Envase TMS applications only need to publish the containers once. After that, Envase Trace Manager will take care of scheduling the next trace.

Note

A container might be published multiple times by a TMS application. This unnecessary process will not cause an error, and Envase Trace Manager will handle that scenario. This, however, allows users to force tracing at that time for most providers.