Claus Ibsen created CAMEL-23684:
-----------------------------------
Summary: BacklogTracer message history should correlate exchanges
by breadcrumb ID for full end-to-end flow
Key: CAMEL-23684
URL: https://issues.apache.org/jira/browse/CAMEL-23684
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Claus Ibsen
The BacklogTracer message history (used by the message-history dev console and
camel-tui) currently captures the latest completed exchange by tracking a
single exchange ID and its direct correlation IDs. This works well for
exchanges that stay within a single route or use in-memory multicast with
correlated sub-exchanges.
However, when routes are connected through external brokers (Kafka, SEDA, JMS,
etc.) in an event-driven architecture, each consumer creates a new independent
exchange with a new exchange ID. The correlation chain is broken, so the
history only shows one slice of the flow rather than the full end-to-end
picture.
Camel already has a mechanism to link these independent exchanges: the
breadcrumb ID (CamelBreadcrumbId header). This ID is propagated through message
headers across broker boundaries, effectively linking the entire flow from the
initial trigger through all downstream routes.
The BacklogTracer should support grouping/correlating exchanges by breadcrumb
ID to capture the full end-to-end message history across broker boundaries.
This would allow the TUI history tab (and other tools) to show the complete
flow, e.g.:
timer -> kafka:orders -> order-dispatcher -> multicast -> kafka:fulfillment +
kafka:notifications -> fulfillment-route + notification-route
All linked by the same breadcrumb ID.
This approach is lighter weight than full OpenTelemetry tracing while still
providing the complete picture for debugging and monitoring.
Affected files:
-
core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
(provisional/complete history queue logic)
-
core/camel-console/src/main/java/org/apache/camel/impl/console/MessageHistoryDevConsole.java
(dev console output)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)