Repository navigation
docs(consumer): explain rejection of invalid queue metadata - #1063
Open
sbalabanov wants to merge 4 commits into
Open
sbalabanov wants to merge 4 commits into
sbalabanov wants to merge 4 commits into
Conversation
Summary: Keep invalid envelope identities durable for subscriptions with unlimited retries and no further dead-letter queue. The pre-controller guard uses the registry's actual subscription policy to Nack these deliveries instead of Reject, while finite primary subscriptions keep their existing behavior. Test Plan: TestConsumer_ProcessDelivery_InvalidTenantMetadata covers final retention, finite primary rejection, and settlement failures. The consumer, SQL queue, and existing consumer integration Bazel targets verify the extracted change independently. Revert Plan: Revert the dependent gateway recovery change before this policy; leave retained final-queue rows intact.
Summary: Restore the existing invalid-envelope rejection and original logging/tests, and document why unchanged invalid metadata is a permanent input error. With no downstream dead-letter queue, rejection may acknowledge and drop the delivery without retry; operators investigate the logged failure. Test Plan: Existing consumer validation tests, SQL Reject cases including no-DLQ acknowledgment, and consumer integration tests pass. Relative to current main, the complete change is only the explanatory comment; no tests or message-handling behavior change. Revert Plan: Revert the explanatory comment if it is no longer useful; preserve the existing rejection policy.
Summary: Keep the same permanent-input rejection explanation at the pre-dispatch loop boundary. This leaves the original guard body untouched and allows the independent gateway change to land in either order without a historical-hunk conflict. Test Plan: Existing consumer, SQL delivery, and consumer integration targets pass. The net diff versus main remains only the three-line policy comment. Revert Plan: Remove the explanatory comment without changing logged rejection behavior.
Keep the platform clarification current with main without rewriting published commits. Its net diff remains only the rejection-policy comment.
sbalabanov
marked this pull request as ready for review
November 10, 2026 21:43
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR: Explain why bad queue information is logged and rejected, not retried.
Summary
This is a comment-only clarification of the existing policy: invalid queue information is logged and rejected, not retried. The same bad input will not repair itself, so any follow-up is an operator decision. With no later dead-letter queue, rejection may mark the delivery finished and discard it.
Repro
Tenant=tenant-aandqueue_name=tenant-b.Test Plan
Checked with the existing tests:
Revert Plan
Remove the comment; existing message handling stays the same.
Issues