The term Business Transactions and Business Transaction Management is widely used in the industry but it is not always well understood what we really mean by it. The BTM Industry Portal provides some good articles on this topic and is definitely recommended to check out. The general goal is to answer business relevant questions that business owners have to application owners: “How much revenue is generated by a certain products?”, “What are my conversion and bounce rates and what impacts them?” or “Do we meet our SLAs to our premium account users?”
Challenge 1: Contextual Information is more than just the URL
In order to answer these questions we need information captured from the underlying technical transactions that get executed by your applications when users interact with your services/web site. Knowing the accessed URL, its average response time and then mapping it to a Business Transaction is the simplest form of Business Transaction Management – but doesn’t work in most cases because modern applications don’t pass the whole business transaction context in the URL.
Business Context information such as the username, product details or cash information usually comes from method arguments, the user session on the application server or from service calls that are made along the processed transaction.
Challenge 2: Business Context is somewhere along a Distributed Transactions
Modern applications are no longer monolithic. The challenge with that is that transactions are distributed, they take different paths, and data we need for our business context (username, product information, cash information, …) is often available on different tiers.