Hi -
I'm currently experimenting with APM toolings, to see how easily they could be applied to our systems. I like what I am seeing with Elastic APM, but I am a bit uncertain as to the approach around transactions and spans.
There are a number of cases where a code-path may need to create a transaction (because it is at the 'top level' for this system), or there may already be one (because it is a unit of work within another unit of work) - in which case I'm not sure - should it perhaps do nothing, or be creating a span rather than a transaction (because we do want to denote a boundary.
Once we start layering on top of that 'distributed' transactions, I'm unclear on how this is intended to fit together.
I.E: it appears as if the intent is that there is one and only one transaction (that appears at the 'top' of the graph of spans) - but it's unclear to me that the (java agent) API is the most useful for this (perhaps needing a 'create transaction, or use span if there already is one), and I'm not sure how this ties together when there are multiple systems with another 'transaction covering an end-to-end' scenario.
Thoughts?