Append ContextAware exception context to DLQ headers #375
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.
Add support for merging metadata from exceptions that implement Junges\Kafka\Contracts\ContextAware interface into the headers of messages sent to the Dead Letter Queue (DLQ). Context keys and values are normalized allowing only string keys and values. Existing message headers are preserved unless explicitly overwritten by the exception context.
Why
Sometimes additional failure metadata (id, correlation keys, retry counts, ...) added to DLQ headers may help downstream consumers and observability tools diagnose and route failed messages.
What changed
Behavior details
kafka_throwable_message,kafka_throwable_code, andkafka_throwable_class_namekeys as before.Testing and Linting
./vendor/bin/phpunit --filter ConsumerTest./vendor/bin/pint