apache / apache/pulsar-client-go

Ability for a Consumer to bypass retries and DLQ a terminally failing message

Open
#1,167 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
745
Forks
389
Avg merge
3d 20h
Merged PRs (30d)
3

Description

**Is your feature request related to a problem? Please describe.**
If I consume a message and fail during the processing of that message in a terminal way, I know that I don't want to retry it, I want to send it directly to the DLQ. Currently, if I wanted a persistent record of the message, I would either have to

1. ACK the message and log it, write it to a database etc.
2. NACK the message and retry it up to the configured max retries, when it would then land in the DLQ.

**Describe the solution you'd like**
I would like a consumer to be able to signal a message to be routed directly to the DLQ.

**Describe alternatives you've considered**
See options 1 & 2 above.

**Additional context**
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the consumer paths for ACK, NACK, configured max retries, and dead-letter queue routing. The issue names no files or tests, so first identify the relevant consumer and retry/DLQ entry points. Done means a consumer can signal terminal failure and the message is routed directly to the DLQ without exhausting retries.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.