I have updated the PIP-377 document and added a section for "Alternative solution considerations". Please take a look, https://github.com/lhotari/pulsar/blob/lh-pip-377-autoRetryAcknowledgement/pip/pip-377.md#alternative-solution-considerations .
-Lari On Sat, 7 Sept 2024 at 12:02, Lari Hotari <lhot...@apache.org> wrote: > Dear Apache Pulsar community, > > I'd like to propose a new feature for Apache Pulsar: automatic retry for > failed acknowledgements. This feature aims to address known issues with > acknowledgement handling, particularly in scenarios involving key-ordered > message processing with Key_Shared subscriptions and during broker > restarts, load balancing events, and topic unloads. The intention is to > have a solution that doesn't require enabling Pulsar transactions. > > Key points of "PIP-377: Automatic retry for failed acknowledgements": > > 1. Motivation: > - Address lost acknowledgements > - Help prevent stuck consumers in key-ordered message delivery > scenarios using Key_Shared subscriptions > - Reduce unnecessary message duplication and improve end-to-end latency > > 2. Proposed Solution: > - Enhance the existing "ack receipt" feature with an automatic retry > mechanism > - There is no need to enable Pulsar transactions > - Introduce a new `autoRetryAcknowledgement` mode for Pulsar clients > without the need to configure the "ack receipt" feature > - Add new configuration options to the ConsumerBuilder interface > > 3. Benefits: > - Improved reliability for key-ordered message processing applications > - Reduced need for manual intervention or complex monitoring solutions > - Better handling of acknowledgement failures during broker restarts > and load balancing events > > The full proposal can be found at: > https://github.com/apache/pulsar/pull/23267 . > The direct link to the rendered version of the markdown file is > https://github.com/lhotari/pulsar/blob/lh-pip-377-autoRetryAcknowledgement/pip/pip-377.md > . > > Please share your thoughts and any concerns you may have about the design > or implementation. > > -Lari >