This article originally appeared on LinkedIn
Essential to Successful Ecommerce
Back in the day, everybody expected synchronous behavior from business applications and web sites. Click a link and wait for a response – while in the meantime, the technology is doing whatever it can to respond to your request, blocking other activities until it’s complete.
Today, in contrast, asynchronous behavior is more of the norm. Not only does such behavior improve performance compared to synchronous interactions, as now many activities can proceed apace, but such systems are easier to use.
Modern technology users – in other words, just about everyone – are now accustomed to asynchronous behavior on the user interface (UI). I call this shift in user expectations the Facebook effect, as Facebook’s UI is fully asynchronous. When you first go to facebook.com, all that loads is an empty UI framework. From there on, Facebook pushes information to various parts of the screen – often with no clicking needed.
Where Facebook leads, the entire digital world follows. Asynchronous behavior now finds a central place in most end-to-end business transactions, both to support dynamic UIs as well as to streamline and accelerate less visible steps in the business process.
Furthermore, as organizations scale up their digital efforts, asynchrony becomes an essential tool for removing performance bottlenecks. It’s no wonder asynchronous interactions are the default interaction pattern in the cloud.
Monitoring Business Transactions that Contain Asynchronous Interactions
Ensuring the performance of any business transaction is important to both end users and the business, regardless of whether it includes any asynchronous activities.
When a transaction does include such an interaction, however, monitoring the transaction’s end-to-end performance becomes tricky, as poorly performing asynchronous activities can complete many seconds after the user believes the transaction has finished.
And of course, if the asynchronous step in the transaction fails completely, then the user may not even be aware there’s a problem – the worst possible scenario for the business.
To address these issues, AppDynamics has added the ability to monitor asynchronous elements of business transactions to its platform.
The admin begins this configuration by setting a transaction demarcator that signifies the end of the asynchronous interaction. For example, if a business transaction contains a method call that spawns threads and then assembles the response to the client once the threads complete, then the admin identifies that method as the logical endpoint in the transaction processing sequence.
In other situations, the admin can specify the tier where the end-to-end transaction processing will complete. As a result, the admin can determine the logical transaction response time for transactions that perform asynchronous back end calls, such as JMS or web service interactions. When the last of the threads that the business transaction spawned terminates on that tier, the AppDynamics agent considers the transaction complete.
Here’s an example. In the screenshot below, the solid lines represent synchronous interactions, while the dotted lines are asynchronous.
In the example above, two ecommerce service nodes interact synchronously with a database via JDBC and with inventory services via Web Service calls. In the meantime, the ecommerce nodes also push asynchronous requests onto three queues. Order processing services then pick up requests off of two of the queues and send them to fulfillment after processing.
The order processing services must properly deal with messages in both the order and fulfillment queues, or fulfillment will slow down or possibly never take place at all. By properly monitoring the order processing services, AppDynamics can identify such problems before they adversely impact the business or the customer.
The Intellyx Take
The ecommerce scenario in the example above is perhaps the most common use case for AppDynamics’ asynchronous monitoring, but it is but one of many scenarios where this capability would be useful.
Business processes in general are long-running, and therefore, any technology that automates such processes will be asynchronous. In addition to commerce and other supply chain-related processes involving ordering and fulfillment, any type of case management process will likely benefit from such monitoring.
For example, any software that supports call centers or other support personnel will likely have asynchronous interactions, whether the software offers support ticketing, field dispatch, or any number of other enterprise scenarios.
In today’s digital world, the typical business transaction centers on a purchase – but there are many other types of business transactions that are equally important to the organization. With the addition of its asynchronous monitoring capability, AppDynamics is able to monitor any such transaction.
Intellyx advises companies on their digital transformation initiatives and helps vendors communicate their agility stories. AppDynamics is an Intellyx client. Intellyx retains full editorial control over the content of this article.