This is a cross post from my Integration Playbook article. Ill be talking a bit more on this topic in due course.
When your working on a growing Microsoft iPaaS implementation. Your organisation is going to be developing a range of different projects that will combine technologies like Logic Apps and other Microsoft Azure PaaS services. As you build more and more solutions you will begin to see patterns and opportunities to develop reusable widgets which will help you build better solutions, quicker and more reliably. As we are a few steps along our journey we have been developing as we go a range of helper utilities which are core to our solutions. We started with a central logging pattern but as time passed we see that common functionality and common connectivity to applications can be encapsulated for reuse which will make it easy to use the functionality they provide and also reduce the amount of configuration you need for applications.
In the case of Logic Apps, logic app to logic app calls where you reuse the Call Logic App shape are very easy to implement and can save a lot of hastle when you compare it to having to setup connectors over and over again.
Below is an example picture showing how we might implement a functional interface which has a business purpose. In the requirements it needs to talk to SAP, Salesforce and also has some utility requirements such as date conversion and other things that are common to logic apps.
When you build 1 logic app at a time you find that a significant amount of effort goes into configuring connectors for different systems. Once we have our helper Logic App setup we can reuse them and it will mean we just need to do a child logic app call rather than having to repeatedly configure connectors and use complex expressions and stuff like that.
We tend to group our helper Logic Apps into different types, for example:
- Application Connectivity
- Reusable business logic
- Helper utilities
There are a few things to be cautious of when you are using this approach. Probably the most common issue would be connector throttling limits if you have too many logic apps sharing a helper to talk to an end system and the combined load will hit the throttling limit. You can split out these connectors if you need to and you dont have to use the helper for high load scenarios.
In general though a small investment in developing your library of helpers as you continue on your Microsoft IPaaS journey will pay you back significantly in future projects.