Integrating and communicating through standardized data sets with multiple systems is an indispensable requirement in every ERP project. No business can just rely on a single system or service to comply with all business needs. Traditionally it has been seen that as the requirements arises to use additional piece of software or a service provider, the integration is built at that time to fulfill the requirements. Although it is looked into from overall enterprise architecture standpoint but often missed from integration (or Technical I should say) architecture perspective. This results in many point-to-point integrations causing lot of churn and maintenance nightmare down the road. Often times this could be avoided by utilizing a robust middle layer and following integration best practices.
In this upcoming series of posts, I am going to assume a scenario and build an integration utilizing Azure based middle layer to demonstrate the power of Azure functions and service bus and how it can work altogether with FinOps to produce a highly scalable and robust integrations by avoiding point-to-point touchpoints.
Contoso entertainment systems have a unique requirement where they want to update a third party service provider about a posted purchase order in real-time through their web API. At the same time, they want to have an email message sent to a team’s alias.
High level approach/design
- A Purchase order is confirmed and registered a business event.
- A message is dropped on Service bus topic with multiple subscriptions through service bus.
- Azure Functions will be auto-triggered and process the message as soon as the message arrives in the topic/subscription.
We’ll be building it in three parts.
Part 2 – Build azure function for a topic subscription to update a third party system via an API call
Part 3 – Build azure function for a topic subscription to send an outlook email
I’ll continue to post these parts and update this post with the links in coming days. Feel free to subscribe to my blog to get first hand update.