High-Level Architecture¶
The level of detail is intentionally kept to a minimum to keep the document brief. For additional details, please contact the Integration Hub team.
Overview¶
All integrations within the Integration Hub follow a layered aarchitecture. The number of layers could vary, but typically, an integration resolves into three layers:
- Experience Layer (XAPI)
- Process Layer (PAPI)
- System Layer (SAPI)
This section briefly discusses each layer for the Barcode Printing API.
Experience Layer¶
The Experience Layer (i.e., "Experience API") exposes the underlying barcode printing providers to the consumers. This layer, therefore, abstracts away the intricacies of the lower-level barcode printing providers thus enabling a unified interface to access the downstream systems.
Process Layer¶
The process layer, at the time of this writing, just delegates the request to the barcode printing providers at the System Layer. However, as the integration matures and evolves into having multiple barcode printing providers, this component would potentially have a considerable amount of routing logic to route the incoming request to the appropriate System API. Ideally, this would use a discriminator in the payload (e.g., printer_name) to determine which downstream system (i.e., barcode printing provider) that the request is intended to go through to.
Tip
This could evolve into the Process API using a data store to determine the routing of an incoming request. For example, the Process API might contain a key-value store with printer names as keys, and values (indirectly) could point to the downstream system that the request needs to be using.
System Layer¶
The System Layer has multiple components within it: each barcode provider has a component attached to the System Layer. For print-my-barcode, it has a print-my-barcode System API component encapsulating all the logic (e.g., request transformation, I/O, response transformation to the harmonised data model, etc.) required to communicate with print-my-barcode and return the response. This layer also maintains barcode provider specific error handling techniques.
