What is a Business Transaction?

In the AppDynamics application model, a business transaction (BT) represents an end-to-end, cross-tier processing path used to fulfill a request for a service provided by the application. 

The business transaction is a key component for effective application monitoring. It consists of all required services within your environment such as login, search, and checkout that are utilized to fulfill and respond to a user-initiated request. These transactions reflect the logical way users interact with your applications. For example, activities such as adding an item to a shopping cart and then checking out various applications, databases, third-party APIs, and web services.

Business Transaction in AppDynamics

With AppDynamics, you can resolve problems that consume a lot of time and resources, and ensure that your most critical business operations perform optimally. You can drill down in the application to focus on more specific goals and operations. For example, a retail website may choose to focus on its checkout or catalog operation; whereas- a financial services firms may focus on the most-used APIs provided for their mobile clients. By prioritizing your business goals early in the process, BTs are much easier to configure.

AppDynamics automatically discovers and maps business transactions for you. Actions, such as Add to Cart, are tagged and traced across every component of your application and visualized on a topology map, helping you to better understand performance across an entire application.

Business Transactions and Endpoints

Within the end-to-end context of a business transaction, you must first identify if there is a performance issue with a service endpoint. Is the Edge service at fault? If not, then identify which downstream service may be at fault?

Business Transactions and Service Triage

To conduct service triage on performance anomalies, you must first identify the root cause of the problem. To help focus on the cause, you should answer these questions: 

  • Is the issue my service or in one of its downstream dependencies? 
  • Is the behavior common across all service endpoint instances, or across a subset?
    • What do the affected instances have in common?
      • Are tags run on service instances, or run on resources?
      • Is shared infrastructure exhibiting a health issue?
      • Is the issue correlated with a release event?
    • Is the issue correlated with an application infrastructure health anomaly?

For recommended AppDynamics best practices for business transactions, see Best Practices to Create Business Transactions.

Sample Business Transaction

Consider, for example, the fictional ACME online application. The application exposes a checkout service at http://acmeonline.example.com/checkout. 

A user request to the service triggers these distributed processing flow and actions:

  1. The business transaction entry point at the originating tier is /checkout URI, which is mapped to a Servlet called CheckoutServlet.
  2. The request results in the originating tier invoking the createOrder method on a downstream tier, the ECommerce-Services server.
  3. The inventory tier application calls a backend database, which is an exit point for the business transaction. The request context is maintained across tiers, including calls to backend tiers.
  4. Any user request on the entry point is similarly categorized as this business transaction, that is, the Checkout business transaction. 

To enable detection of all the components in a distributed business transaction, downstream agents must be at the same AppDynamics release or newer than upstream agents. This is true regardless of whether the tiers are all built on the same platform. For example all Java or multiple platforms, a Node.js tier calling a Java tier, calling a .NET tier, and so on.