jcass8695 opened a new pull request, #23133:
URL: https://github.com/apache/pulsar/pull/23133

   <!--
   ### Contribution Checklist
     
     - PR title format should be *[type][component] summary*. For details, see 
*[Guideline - Pulsar PR Naming 
Convention](https://pulsar.apache.org/contribute/develop-semantic-title/)*. 
   
     - Fill out the template below to describe the changes contributed by the 
pull request. That will give reviewers the context they need to do the review.
     
     - Each pull request should address only one issue, not mix up code from 
multiple issues.
     
     - Each commit in the pull request has a meaningful commit message
   
     - Once all items of the checklist are addressed, remove the above text and 
this checklist, leaving only the filled out template below.
   -->
   
   [PIP: 
367](https://github.com/jcass8695/pulsar/blob/add/pip-367/pip/pip-367.md)
   
   ### Motivation
   
   If a consumer consumes a message and fails during the processing of that 
message in a terminal way, we as the client in
   certain scenarios may not want to retry that message later, we may want to 
send it directly to the DLQ. Currently, if
   the client wanted a persistent record of the message, they would have to do 
one of:
   
   1. NACK the message and retry it up to the configured max retries, when it 
would then land in the DLQ.
   2. ACK the message and explicity produce it to the DLQ.
   3. ACK the message and persist it in some other system, e.g. a database 
table, a log file.
   
   I propose adding an interface that allows a consumer to terminally NACK a 
message, sending it directly to the DLQ instead of retrying.
   
   ### Modifications
   
   No modification yet.
   
   ### Verifying this change
   
   - [ ] Make sure that the change passes the CI checks.
   
   
   This change is a trivial rework / code cleanup without any test coverage.
   
   - Documentation only
   
   ### Does this pull request potentially affect one of the following parts:
   
   - [ ] Dependencies (add or upgrade a dependency)
   - [ ] The public API
   - [ ] The schema
   - [ ] The default values of configurations
   - [ ] The threading model
   - [ ] The binary protocol
   - [ ] The REST endpoints
   - [ ] The admin CLI options
   - [ ] The metrics
   - [ ] Anything that affects deployment
   
   ### Documentation
   
   - [ ] `doc` <!-- Your PR contains doc changes. -->
   - [ ] `doc-required` <!-- Your PR changes impact docs and you will update 
later -->
   - [ ] `doc-not-needed` <!-- Your PR changes do not impact docs -->
   - [ ] `doc-complete` <!-- Docs have been already added -->
   
   ### Matching PR in forked repository
   
   PR in forked repository: <!-- ENTER URL HERE -->
   
   


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