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)

Reply via email to