AzureRecipes

Integration Pipeline

This blueprint contains a basis for integration scenarios where various data between shall be exchanged and transformed between systems in a robust and asynchronous way. It bases on central Service Bus deployment which orchestrates the processes by delivering messages in dedicated queues. These queues may be consumed by Logic Apps and/or Functions via standard connectors and further processed.

Architecture

Architecture

Get draw.io File Estimate

Key Concepts

Integration Patterns

  1. Event-based: A connected bus system (on Azure: Event Grid, Event Hub, Storage Queue, other Service Bus) dispatches a trigger information. All data to be exchanged (payload) is then loaded from a source system as an early step in the process.
  2. Message-based: Same as above, but the data to be exchanged (payload) is already included in the trigger information. Therefore the maximal message size supported by the Service Bus has to be considered.
  3. Request-based: External system calls an API (typically provided by a Function)
  4. Schedule-based: Starting in preconfigured time intervals (trigger on Logic App or Function)

Implementation Notes

Logic Apps

Because of the no/low-code style, this is easily understandable and can be adjusted in an agile way. They further automatically provide retry-functionality and a full logging of all executions.

As Logic Apps are a cloud native service, they can be executed only in the cloud and are thus also defined and maintained manually in the Azure Portal. To provide a consistent source management and allow the (re-)deployment to (new) environments, following guidelines are recommended:

References:

Service Bus

The recommended pattern to consume messages is peek-lock and manual completion / abandoning when the process is completed. To handle the potential problem of lock expirations you may consider this solution.

References:

Functions

There is often the need to provide mappings or routing definitions in a configurable way. You may consider this solution.

Deployment

Deploy to Azure