lhotari commented on issue #23480:
URL: https://github.com/apache/pulsar/issues/23480#issuecomment-4914632956

   A proper implementation will require also Pulsar binary protocol and client 
changes which adds more work since both broker and client would have to support 
the solution.
   
   It's also possible to have a purely client side implementation, however that 
would result in the consumer running out of permits since all further messages 
for the same key need to be postponed until the nacked message is delivered 
again.
   
   The high level idea is to keep the nacked message and the following messages 
with the same key that have already been pushed to the client on the client 
side and pause delivering of any new messages until the nacked message has been 
retried once again and acknowledged.
   
   The retrying of the nacked message would be handled purely on the client 
side. Since this is the case, the only benefit of the nack support is that the 
consumer doesn't run out of permits when there a lot of messages for the same 
key.
   
   Before this feature has been implemented it is possible to perform the logic 
in an application to retry and not process further messages for the same key 
until the message has been successfully processed with the drawback that 
permits could run out for a specific consumer since messages for a specific key 
won't be held back on the broker side.


-- 
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