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]
