Andrea Cosentino created CAMEL-24449:
----------------------------------------
Summary: camel-core - saga coordinator is selected from the
unprefixed Long-Running-Action message header
Key: CAMEL-24449
URL: https://issues.apache.org/jira/browse/CAMEL-24449
Project: Camel
Issue Type: Bug
Components: camel-core
Reporter: Andrea Cosentino
Assignee: Andrea Cosentino
Fix For: 4.23.0
{{SagaProcessor.getCurrentSagaCoordinator()}} prefers the internal
exchange-extension state, but falls back to the {{Long-Running-Action}} message
header ({{Exchange.SAGA_LONG_RUNNING_ACTION}}) "for LRA interoperability". The
fallback is honoured even under the default {{InMemorySagaService}}, where no
LRA interoperability exists.
The constant is outside the {{Camel}} namespace, so the default
{{HeaderFilterStrategy}} of every consumer passes it through untouched, and the
saga id is written back onto responses by design - which is how a caller comes
to know a live saga id in the first place.
The effect is that a message can select which saga coordinator its exchange
joins. In AUTO completion mode that reaches {{complete()}}/{{compensate()}} of
saga state the sender's own exchange did not create.
Proposal: only consult the header when an LRA-capable saga service is in use,
and consider a {{Camel}}-prefixed spelling with the current name kept for LRA
interoperability behind an explicit option. Needs an upgrade-guide entry.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)