oscerd commented on code in PR #26779:
URL: https://github.com/apache/camel/pull/26779#discussion_r4090410592


##########
docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc:
##########
@@ -2567,3 +2567,17 @@ Routes that reference the constants (for example 
`setHeader(MustacheConstants.MU
 are unaffected. Routes that set the header by its literal string name, or that 
use
 `allowTemplateFromHeader=true` with the old header names, must switch to the 
new `Camel`-prefixed
 names.
+
+=== camel-pulsar - a failed exchange is negatively acknowledged
+
+When a route fails, the consumer now calls `negativeAcknowledge` on the Pulsar 
consumer instead of
+leaving the message unacknowledged. This only applies when 
`allowManualAcknowledgement` is `false`
+(the default); with manual acknowledgement the route stays in charge, as 
before.
+
+This changes when the message comes back. Previously it was redelivered once 
the acknowledgement
+timeout expired, which `camel-pulsar` sets to 10 seconds by default through 
`ackTimeoutMillis`. A
+negative acknowledgement removes the message from the client's 
unacknowledged-message tracker, so
+redelivery now follows `negativeAckRedeliveryDelayMicros`, which defaults to 
60 seconds, and honours
+`negativeAckRedeliveryBackoff` when one is configured.
+
+A route that wants the previous timing can set 
`negativeAckRedeliveryDelayMicros=10000000`.

Review Comment:
   Fair point, and I had missed it — the PR body noted the semantic change but 
the guide did not, and the method is on the public API surface even though the 
only caller is inside the component. Added in 736f68d:
   
   ```
   === camel-pulsar - PulsarMessageUtils.updateExchange returns the exchange it 
was given
   ```
   
   covering that it now populates and returns the instance it received instead 
of a copy, why (the copy orphaned the pooled exchange), and that external 
callers relying on copy semantics must make their own.
   
   I put it before the negative-acknowledgement entry rather than at the end of 
the file: three open PRs each add an entry here, and appending them all 
guarantees a conflict for whichever merges second.
   
   _Claude Code on behalf of oscerd_



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to