building loosely coupled integrations with logic apps
TRANSCRIPT
Building loosely coupled integrations with Logic Apps
Toon Vanhouttehttps://be.linkedin.com/pub/toon-vanhoutte/6/276/84b
Building loosely coupled integrations with Logic Apps
Toon VanhoutteSolution Architect
@toonvanhoutte
Consider the following scenario
Enterprise integration
FILE, FTP, SFTP
Pure messaging
100+ Integrations
Batching
Debatching
Canonical data format
Business Critical
Goal of this sessionCan we establish such enterprise
integrations with Logic Apps?
Let’s get our hands dirty!
5
Receive FF Archive FF Parse to XML Transform Send XML
Analyze the result!
6
We cannot reuse this development effort in similar integrations!
This workflow is too tightly coupled with its
receiving transport protocol!
There’s no option to resume this workflow if it fails during processing.
This is spaghetti interfacing! There’s no
loose coupling or pub/sub involved! This workflow handles
multiple files, which results in difficult troubleshooting!
ConclusionLogic Apps is not a fit for enterprise integration!
Democratization of integration
8
➔ IFTT / P2P integration➔ SaaS connectivity➔ Failure expected /
tolerated➔ Democratized➔ User-centric➔ API’s
Citizen Integration➔ Loosely coupled
integrations➔ On-Premise LOB systems➔ Mission critical➔ Dedicated IT resources➔ Organization-centric➔ API’s + Messaging
Enterprise Integration
BizTalk Server
Logic Apps
Logic Apps is a natural fit for citizen integration
you know your patternsyou know its strengthsyou know its limitations
Logic Apps can be used for enterprise integration if
Analyze the result!
11
We cannot reuse this development effort in similar integrations!
This workflow is too tightly coupled with its
receiving transport protocol!
There’s no option to resume this workflow if it fails during processing.
This is spaghetti interfacing! There’s no
loose coupling or pub/sub involved! This workflow handles
multiple files, which results in difficult troubleshooting!
Design your solution to enable reuse of
common integration tasks!
Perform protocol and message processing in different Logic Apps.
Design your solution to turn resubmit into
resume functionality!
Don’t forget your enterprise integration patterns! Avoid P2P! One Logic App
instance should handle only
one message.
12
How to achieve this?➔ Process Manager: orchestrates the message
exchange by consuming reusable nested Logic Apps➔ Publish - Subscribe: leverage Azure Service Bus and the Logic Apps connector to create loosely couple integrations
➔ Routing Slip: configure a message exchange, by reusing Logic Apps, without the need for a central process manager
➔ Templated Deployments: leverage advanced deployment techniques to introduce reuse of development efforts
The Routing Slip Pattern
13
➔ Route a message through a series of processing steps➔ Dynamically assign a route for each message➔ The message exchange is completely config-based
15
The Routing Slip Pattern➔ How to assign a routing slip?
➔ External➔ Static➔ Dynamic➔ Scheduled
➔ How to invoke a service (step)?➔ Sync➔ Async➔ Combination
Using Azure Service Bus
The Claim Check Pattern
16
➔ Azure Service Bus has a 256kB message size limit➔ Store the payload in Azure Blob Storage➔ Include a SAS-URI reference in the exchanged message
17
The Final Solution➔ Developed a custom API App that:
➔ Provides Routing Slip functionality➔ Reads Routing Slips from Azure File Share➔ Integrates with Azure Service Bus➔ Leverages claim check pattern with Azure Blob
Storage
Example: Routing
Slip
Example: Transform
19
Example: Flat File Decoding
20
21
Example: Debatching
22
Example: Batching
Demo time!
Debatching
Scenario 01 – Debatching of Sales Order
Batching
Scenario 02 – Batching of Invoices
Analyse the result!
Advantages➔ Solid design➔ Configuration driven➔ Fast release cycles➔ Robust➔ Good error handling➔ Easy side-by-side
versions28
Challenges➔ Requires solid
framework➔ Async = expensive
➔ Service Bus➔ Blob Storage➔ Polling
➔ Monitoring
Conclusion
Logic Apps is a natural fit for citizen integration
you know your patternsyou know its strengthsyou know its limitations
Logic Apps can be used for enterprise integration if
Thank you!
Toon VanhoutteSolution Architect
@toonvanhoutte