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)

Reply via email to