Introducing Async Message Processing for BizTalk integrations

Introducing Async Message Processing for BizTalk integrations

Lex Hegt

Author

Category: Atomic Scope

Posted: January 11, 2022

With Atomic Scope, you get functional insights into business transactions that run through your middleware platforms. For example, suppose an integration that involves a webshop and one or more backend systems. In that scenario, in Atomic Scope you could see the flow of orders from the webshop into those backend systems and track information like order status, customer information, fulfilment status, etc. Having that kind of information at hand, enables you to be in control and to be better aware of your business processes. It does not end with just viewing the collected information, you will even be able to monitor if any exceptions are happening.

The most important middleware platforms that are supported by Atomic Scope are Microsoft BizTalk Server and Azure Serverless technologies like Logic Apps and Azure Functions. Besides those technologies, you could also involve your home-grown systems by using the APIs that are exposed by Atomic Scope.

How does Atomic Scope collect business information

When messages are processed by your middleware platforms, Atomic Scope collects business information from those messages. With the help of the Atomic Scope portal, you can define what business information you want to be tracked and must show up in the Tracking portal.

To be able to collect the required business information, Atomic Scope uses several plug-ins. For BizTalk ports, there are Pipelines and Pipeline components available, the product has Actions that can be embedded into Logic Apps, and there are REST APIs and .NET classes that can be used in for example Azure functions and BizTalk orchestrations.

When plugging in those components in your integrations, you will also configure for example what business process, transaction, and stage is involved. Based on that configuration, the plugins know exactly what information must be picked up from the in-process messages. In the plugins you can also configure if you want the complete message to be archived, enabling you to view it in the Atomic Scope Tracking portal.

Asynchronous message processing for Azure Serverless technologies

As mentioned in the beginning of this article, Atomic Scope enables you to view relevant information about your business transactions that run through your middleware platforms. That is why we consider it as very important that Atomic Scope should not miss tracking a single transaction, even in scenarios where exceptions are occurring. So, where possible, we try to improve the product to make this happen.

For example, when Atomic Scope is used to collect business information from Azure Serverless technologies like Logic Apps, all the collected information is pushed to a ServiceBus queue. After that, the information is being picked up by Atomic Scope’s on-premises components to make sure that all the data is showing up properly in the Atomic Scope portal.

In this scenario, we have decoupled collecting the required business information from the Logic Apps and making sure that the information shows up properly in the Tracking portal. In other words, message processing and showing the collected information happens in an asynchronously way.

asynchronous message processing

Synchronous message processing in BizTalk integrations

On the other hand, in case of BizTalk integrations, until now, all the processing is happening in a synchronous way. So, both collecting the required information from the messages, and making sure the information shows up correctly in the Tracking portal is handled while receiving/transmitting the messages in BizTalk Server. In contrast with Logic Apps, all the processing is happening on-premises, so in most situations, fully handling the message synchronously in BizTalk is totally fine.

Still, we do see, mainly high load, scenarios where synchronous processing is not the best possible solution. That is why in Atomic Scope v8.1, we introduce Asynchronous message processing for BizTalk integrations.

Asynchronous message processing for BizTalk integrations

For more flexibility with respect to message processing in BizTalk integrations, in v8.1, we have released the core part of the asynchronous message processing feature. That means that in case you are using the standard pipelines that come with Atomic Scope, you will be able to use the feature. Check the below list for the standard Atomic Scope pipelines:

  • AtomicScope.Pipelines.AtomicScopeXMLReceive
  • AtomicScope.Pipelines.AtomicScopeXMLSend
  • AtomicScope.Pipelines.AtomicScopeJSONReceive
  • AtomicScope.Pipelines.AtomicScopeJSONSend
  • AtomicScope.Pipelines.AtomicScopePassThruReceive
  • AtomicScope.Pipelines.AtomicScopePassThruSend

However, if you have developed custom pipelines based on the Atomic Scope SDK, you will have to wait until we release v8.2. In that release, we plan to make the feature available in our SDK.

How to use the asynchronous message processing feature

The asynchronous message processing feature is developed in such a way that by default, the way messages are processed by Atomic Scope remains the same, so in a synchronous manner. So, even after an upgrade from an earlier version of Atomic Scope to v8.1, BizTalk messages are still processed synchronously.

If you want to use the async message processing method, you must configure this as part of your business process configuration.

To enable async message processing, perform the below steps:

  1. Open the Atomic Scope portal
  2. Navigate to Business Process
  3. Open a Business Process (assuming you have Business Process Owner permissions)
  4. Select a Transaction

The following screenshot shows the configuration of a sample business process called Kovai.Sales. The MessagingOnlyScenario transaction is highlighted. The right side of the screen shows the Process Message Async switch that is introduced in v8.1.

asynchronous message processing
  1. Enable the Process Message Async button
  2. To save the configuration change, click Save in the upper right corner

During message processing, the BizTalk pipelines check every two hours if there has been a change in the business process configuration. So, by default, after two hours, the pipelines will become aware that messages must be processed asynchronously. However, by restarting the relevant host instances, the configuration will be picked up immediately. As a result, the messages will be processed asynchronously from that moment on.

What does this mean for you

By adding the asynchronous message processing feature for BizTalk integrations, we intend to make Atomic Scope better scalable. Enabling the feature results in pushing part of the message processing to the backend of Atomic Scope. Compared to synchronous message processing, this results in being able to receive/transmit more messages within the same timeframe and making it less likely that exceptions occur due to timeouts or other failures.

Note: Despite the benefits during the reception and transmitting of the messages by BizTalk, compared to synchronous message processing, the transactions become visible later in the Tracking portal. This is due to the processing that happens in the Atomic Scope backend.

Use case scenarios

Of course, you can decide what interfaces you want to be processed asynchronously, but we think there are two most common scenarios where this feature is useful.

Scenario 1 – Integrations that suffer under high load during synchronous message processing
In this scenario, integrations might suffer under vast amounts of messages, and the BizTalk platform struggles with processing all those messages in time. This may result in delayed message processing and exceptions.

By enabling async message processing for such integrations, the workload while receiving/transmitting messages will be less. That should result in more messages being processed without running into issues.

Scenario 2 – Transactions of integrations of lesser importance can show up delayed in the portal
If you have integrations of lesser importance, it could be totally fine if the information about the processed transactions of this integration would show up delayed in the Tracking portal.

Enabling async message processing not just relaxes message processing when they are received or transmitted by BizTalk. Due to the backend processing, the transactions also show up delayed in the Atomic Scope Tracking portal.

Feature Roadmap

In v8.1, we have released the core functionality for the async message processing feature for BizTalk integrations. Also, support for the out-of-the-box pipelines of Atomic Scope has been added. However, we also have customers who develop their own custom BizTalk pipelines and base them on the API that comes with Atomic Scope. However, the API currently does not support async message processing for BizTalk integrations. Although we don’t have release timelines yet, we expect to release that functionality in v8.2. Besides making the feature available in the SDK, in v8.2 we also plan to make it available for message reprocessing.

With respect to the released functionality in v8.1, it is good to realize that the following flows are not yet supported:

  • BizTalk integrations that contain nested orchestrations
  • EDI-based batches in BizTalk Server

Of course, we aim to support those flows too, in a future release.

Conclusion

In v8.1, we have released important functionality around the asynchronous processing of messages for BizTalk integrations. That feature helps shape the product further, and in future releases, we intend to make that feature even richer and more powerful.

To make the product even more helpful, besides this feature, we have released more functionality in v8.1. Do you want to understand what else has been brought to the product? Feel free to check the public Atomic Scope documentation portal.

Are you a current Atomic Scope user, and do you miss a specific feature or functionality in the product? Feel free to reach out to us to discuss this. Alternatively, you could also leave your suggestion in the Feedback portal.

Are you interested in having a better functional overview of your integrations, but you are not using Atomic Scope yet? Why not give the product a try?! Our Product Consultant team will be happy to discuss your challenges and to show you the product during an obligation free demonstration.
We are looking forward to meeting you! If you prefer to explore Atomic Scope on your own, you could also download a fully functional but time-limited free trial.

Happy integrating!

atomic-scope-cta