Distributed Event-Driven Observability via Asynchronous Trace Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional observability techniques are ineffective for asynchronous communication architectures in microservice applications, as they treat asynchronous transactions as a single unit, failing to provide meaningful insights into the performance and behavior of individual application functions.
Innovation Solution
A method and system for providing end-to-end observability in distributed event-driven applications by generating traces, filtering asynchronous spans, decomposing them into sub-traces, and deriving metrics for each sub-trace using a global collector cluster.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional distributed tracing treats asynchronous transactions as a single unit, then the system structure remains simple, but meaningful performance observations of individual application functions cannot be obtained
Solution Approach 1:
The patent segments an asynchronous transaction trace into multiple discrete path traces, where each path trace represents a specific execution path from start to end. This segmentation allows performance metrics to be calculated for individual application functions rather than treating the entire asynchronous transaction as a single unit, thereby improving measurement precision while managing complexity through systematic decomposition
Solution Approach 2:
The patent introduces a path identification mechanism that acts as an intermediary to correlate spans across different execution paths. This intermediary component uses path identifiers to match spans belonging to the same discrete path, enabling accurate performance observation without requiring complex direct analysis of the entire asynchronous transaction structure
2Loss of information
If conventional observability techniques bundle different application functions executed in parallel into a single transaction, then data collection remains simple, but effective performance insights are lost
Solution Approach 1:
The patent segments the bundled asynchronous transaction data into separate path traces, where each path trace contains only the spans relevant to a specific execution path. This segmentation prevents information loss by ensuring that performance metrics are calculated for individual application functions rather than being averaged or obscured within the bundled transaction data
Solution Approach 2:
The patent applies local quality by treating each discrete path within the asynchronous transaction differently, assigning specific path identifiers and collecting metrics tailored to each path's characteristics. This allows different performance observations to be maintained for different application functions that were previously bundled together, preserving local performance information while managing complexity through structured differentiation
3Measurement precision
If detailed tracking of each asynchronous path is implemented, then meaningful performance insights are achieved, but system complexity and processing overhead increase
Solution Approach 1:
The patent introduces path identifiers as an intermediary mechanism that simplifies the tracking of asynchronous paths. Instead of implementing complex direct tracking of each path's spans, the path identifier acts as a mediator that automatically correlates spans to their respective paths, achieving detailed path-level performance measurement while reducing system complexity through this abstraction layer
Solution Approach 2:
The patent implements a universal path identification mechanism that can be applied across all asynchronous transactions and paths. This multi-functional approach allows the same path identification and correlation logic to handle multiple paths simultaneously, reducing overall system complexity by avoiding the need for separate tracking mechanisms for each individual path while still achieving detailed performance insights
Data Source
AI summary
A method and system for providing end-to-end observability for distributed event-driven applications are disclosed. The method includes generating a trace for an executed transaction and decomposing the generated trace into multiple synthetic traces or sub-traces. Each of the synthetic traces or sub-traces represents an operation performed for a discrete application function contained within that transaction. For each sub-trace a synthetic root span is generated, the root span representing an end-to-end time to process the respective application function.


