15:HowTo-Decouple Interface Pattern using LogicApp
Azure cloud

15:HowTo-Decouple Interface Pattern using LogicApp

LogicApp can be triggered from outside and linked with each other by HTTP calls but this all gives a synchronous approach to message processing. But often we need to decouple source and destination systems, as we integrate more systems having different downtime, downstream downtime, parallel processing capacity, a mechanism to save messages and process the same on-demand at a later stage.

Let's try to understand with a sample scenario:

Interface Int01 with two sources, one processing ( data transformation), and three destination systems.

Solution 1: Create two logic app for each source and perform processing and send to three destinations from each logic app. Problems with this solution

  1. source and destination are directly coupled, we can potentially hit throttling scenario
  2. duplicate processing code
  3. all failed message needs to be manually reprocessed
  4. timeout due to destination system capacity

Solution 2:

We can classify logic app into three categories

  1. Source system(s) interfaces — Int01-LAS01, Int01-LAS02
  2. LogicApp processing interfaces — Int01-LAP01
  3. Destination system(s) interfaces — Int01-LADRouter, Int01-LAD01, Int01-LAD02, Int01-LAD03

Communication between can be set up using Azure Storage queue and processing and destination logic app can be triggered from Azure Storage queue

No alt text provided for this image

Int01-LAS01, Int01-LAS02 will send message to Azure Storage Queue ( Int01SourceQueue)

Int01-LAP01 can pick messages from Azure Storage Queue ( Int01SourceQueue) and once processing is complete send message to Azure Storage Queue ( Int01DestinationQueue)

LADRouter can pick the message from Azure Storage Queue ( Int01DestinationQueue) and route to all three destinations LogicApp.

Based on requirement we can create an additional queue to store message during downtime and reprocess once things are back to normal or throttle message processing for the destination using Concurrency control in the logic app like the below image( max 26 message in parallel processing)

No alt text provided for this image

Decoupling is the key feature that should be implemented in all interfaces irrespective of underlying tools like LogicApp, BizTalk, Mulesoft, Dell Boomi … We will not have systems working with similar capability, maintenance downtime, technology, data format.

We need an interface system to manage all disparity and provide a solution approach that can be easily adaptable to ever-changing business needs.

Keep sharing…

Kamesh Kamalanathan

Lead Digital Engineer at Sonata Software

3 周

Thanks for posting

回复

要查看或添加评论,请登录

Tarun Kumar Garg的更多文章

社区洞察

其他会员也浏览了