Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for reporting message processing failure, as well as acknowledgement #98

Closed
Azquelt opened this issue May 20, 2020 · 2 comments · Fixed by #121
Closed

Add support for reporting message processing failure, as well as acknowledgement #98

Azquelt opened this issue May 20, 2020 · 2 comments · Fixed by #121
Milestone

Comments

@Azquelt
Copy link
Member

Azquelt commented May 20, 2020

Currently, the spec has support for a message being acknowledged (indicating that processing has completed successfully) but nothing to indicate that processing of a message failed.

This is highlighted by the proposed Emitter API in #87. Emitter.send(T) returns a CompletionStage<Void> which completes when the message is acknowledged, but because it's a CompletionStage, you would expect it to complete exceptionally if message processing fails.

Adding message failure reporting might also open up new possibilities for better ways of handling processing failures. At the moment, the only option is to send a failure signal downstream, causing the stream to terminate (unless the user adds some kind of recovery, but the RM spec doesn't include any tools for doing that.) If message failure reporting were available, it might make more sense to propagate the failure back to the source of the message, allowing the source retry processing (by sending the same message again) or take some other recovery action (such as sending the message to a dead letter queue).

@Emily-Jiang Emily-Jiang added this to the 1.1 milestone Jul 22, 2020
@pilhuhn
Copy link

pilhuhn commented Dec 3, 2020

Not sure if I completely understood the original issue.
I'd also expect to completeExceptionally if e.g. the underlying sender can't send the message/payload before even hitting e.g. Kafka, the exception should also bubble up.

My use case is to do Schema enforcement so that if the sender's message does not conform ot the schema, it will be caught way before the message hits Kafka.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants