eMagiz Messaging

Last modified by Erik Bakker on 2024/08/19 21:27

This microlearning introduces the eMagiz Messaging pattern. This messaging integration consists of five layers and is based on the VETRO architectural pattern, which stands for Validate, Enrich, Transform, Route, and Operate. The microlearning covers various aspects such as the canonical data model (CDM), transformation, queueing, and error handling within eMagiz. It provides a comprehensive overview of how messaging integration works in eMagiz and the crucial components involved in the process.

Should you have any questions, please get in touch with academy@emagiz.com.

1. Prerequisites

  • Some context on messaging will be helpful.

2. Key concepts

All concepts are discussed in the section below.

3. Introducing Messaging

eMagiz Messaging is the pattern in which you can connect various parties via various connectivity mechanisms to the eMagiz messaging engine. These external applications can connect in the most appropriate way (e.g., REST, SOAP, SFTP, and many more) to eMagiz. eMagiz will subsequently place the input messages on a specific queue. For example, you can distribute the message to various other external applications and deliver the messages via the connectivity method most desirable for each external application.

fundamental-messaging-introduction--logical-view-landscape.png

Any messaging integration in eMagiz consists of five layers. The message starts in the entry and moves to the other application via the onramp, routing, offramp, and exit.

fundamental-messaging-introduction--five-layers.png

3.1 The five layers of eMagiz Messaging

eMagiz has implemented a five-layered model based on the integration architectural pattern VETRO, which stands for Validate, Enrich, Transform, Route, and Operate. Each of these layers plays a role in the pattern. Below is an explanation of these five layers. Each layer will result in integration components referred to as flows in eMagiz. These flows will run strategically across the integration landscape in a specific runtime position (see section "Architectural components" in this document).

  • Entry
    • In the entry flow, you can configure the system's connectivity, which will send a message to eMagiz. It can be a push from the external system or a pull from eMagiz to the external system. Once the message is received, the message will be queued directly to the next step in the model
  • Onramp
    • In this part, the message will be transformed and validated, preparing it for the following steps to send to the external system. Specific elements exist here also to enrich the message where needed with additional attributes
  • Routing
    • Using specific header information, the message can be routed to one or more offramps for further processing
  • Offramp
    • In this process, the message passed on from the routing can be validated if it meets the expected structure and then transformed to the target system. Once processed, the message is put in the exit queue.
  • Exit
    • The exit will read the message from the queue and then connect to the target system

3.2 Canonical Data Model (CDM)

The Canonical Data Model is a crucial part of the messaging pattern, which we call the CDM in layman's terms. The CDM is the data model at the heart of all your messaging integration and defines how a specific message should look from your point of view. For example, when you have an Order and Invoice integration, the CDM will explain what an Order looks like, how an Invoice looks, and how the two are related (or not). Based on this model, you can select portions of the CDM to act as the CDM message for a specific message type (i.e., Order).

fundamental-messaging-introduction--cdm-example.png

Critical considerations in setting up a CDM are:

  • Clarity
  • Consistency
  • Logical

3.3 Transformation

As the external parties will most likely not adhere to this standard you defined in the CDM, a crucial part of messaging integration is transforming the structure as supplied (or requested) by the external party to and from the CDM. You can quickly transform this data with the help of the eMagiz tooling in the Design phase of eMagiz. See below for an illustration.

fundamental-messaging-introduction--transformation-example.png
 

3.3 Queueing

Within eMagiz, we use the queueing mechanism to transport messages from one queue to the other. The JMS orchestrates this mechanism of queues. The JMS registers and deregisters queues dynamically when there is a need for the queue to be created or destroyed. For example, customers must be registered on any queue to pick up messages. Once the message is delivered to the next queue and the transaction is finished, the message leaves the previous queue. For a more in-depth analysis of how queues work within the platform, please check out this microlearning.

3.4 Error Handling

Each messaging flow related to a messaging queue (i.e., onramp, routing, offramp, exit) contains a subprocess that will send the error to the error flow if the operational process fails. As a result, the error will appear in the Dashboard in the Manage phase of eMagiz so the user can analyze it. An example of what this Dashboard looks like can be found below.

fundamental-messaging-introduction--error-handling-manage-dashboard.png

This information can help you easily determine the origin of an error message. For more information, please check out this microlearning.

3.5 Architectural components

Connecting various systems via the messaging pattern allows you to deploy parts of your architecture as close to the system. This means you can deploy part of the solution in the eMagiz Cloud and part of the runtimes that hold the entries and exits on-premise if the system you want to connect to is also deployed on-premise. This makes the connection between the entry or exit and the system in question more stable.

An example of such a hybrid setup is depicted below.

fundamental-messaging-introduction--hybrid-architectural-setup.png

Logically, if all your systems are cloud systems, the most logical choice would be to deploy the complete eMagiz model within the eMagiz Cloud. An example of such a cloud setup is depicted below.

fundamental-messaging-introduction--cloud-architectural-setup.png

4. Key takeaways

  • Messaging uses five layers to transport data between systems
  • The CDM is a crucial component within messaging
  • To transport the messages, we use the queueing mechanism
  • Errors from the messaging flows show up in the manage dashboard
  • Messaging runtimes should be deployed as close to the system as possible

5. Suggested Additional Readings

6. Silent demonstration video