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

errors.tolerance support? #34

Open
lavalex opened this issue Oct 13, 2021 · 10 comments
Open

errors.tolerance support? #34

lavalex opened this issue Oct 13, 2021 · 10 comments

Comments

@lavalex
Copy link

lavalex commented Oct 13, 2021

Hello,

Does the connector support ignoring errors or putting errors and responses to another topic?

@ivanyu
Copy link
Collaborator

ivanyu commented Oct 13, 2021

Hi,
No, not at the moment

@CodeLikeAGecko
Copy link
Contributor

My company is considering implementing support for errors.tolerance and ErrantRecordReporter. Is there a recommendation with respect to the http-connector batch mode? Using batch mode will be a lot of extra work to figure out which records worked and which had an issue and then likely need to report multiple Errant records. It might be simpler to remove batch support to support reporting Errant records. Any other suggestions on direction to implement would be helpful so changes can be posted back here as a PR. Thanks!

@CodeLikeAGecko
Copy link
Contributor

@ivanyu Hi, I am wondering what your opinion is on the above? Is it okay to remove the batch mode logic when adding errors.tolerance and ErrantRecordReporter functionality?

@Oduig
Copy link

Oduig commented Dec 10, 2021

This would be useful functionality. We use this connector to replicate traffic from a production environment to a staging environment, forwarding the raw payload. Currently, any bad request to the main API causes the connector to stop.

@ivanyu
Copy link
Collaborator

ivanyu commented Jan 26, 2022

Sorry for the very long delay!

Do I understand correctly that you think of integration like in this test, i.e. the connector will itself send messages to the DLQ?

@CodeLikeAGecko
Copy link
Contributor

No worries @ivanyu.

Yes, the Sink will report the message with the ErrantRecordReporter if configured with errors.tolerance and DLQ handling, and the Connector will send the message to the DLQ. It would involve increasing the minimum supported Kafka version to 2.6.3, as ErrantRecordReporter showed up in Kafka 2.6.
I have already implemented this for my company's internal use and I can submit it as a PR if you would like. I did it in a way that preserved the current "batch send" concept. I felt that for errant record reporting we should only be sending one record at a time, so if batch send is being used then it won't use the errant record reporting. This should maintain backwards compatibility.

@ivanyu
Copy link
Collaborator

ivanyu commented Feb 9, 2022

Sounds good to me, @CodeLikeAGecko, please submit the PR!

I think a good strategy would be to fail somewhere in the configuration checking with the error message if both DLQ and batching are configured.

@dbayonacode
Copy link

@lavalex
We could ignore errors and putting them and in a Dead Letter Queue Topic adding the following configuration properties to the sink connector configuration:

errors.tolerance = all
errors.deadletterqueue.topic.name =

Kafka Connect framework does the work.

@miguelaeh
Copy link

Hi!
Is there any update on this? #57 was merged but still errors.tolerance does not seem to work

@adaliszk
Copy link

adaliszk commented Nov 7, 2024

Sorry for the ever-so-slight necro, but it seems that at least the error.tolerance = all does work. However, batched mode does not support it, which would be really handy to have.

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

No branches or pull requests

7 participants