-
Notifications
You must be signed in to change notification settings - Fork 76
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
Verify checkpoint saving strategy #72
Comments
I imagine the risk of The other alternative is we make it a configurable choice in the |
that's my feeling too |
that's not a bad idea. how complex would this make the code @fbeltrao ? |
The code to support both is not complex. I am questioning the value. What Jeff says is right, consumers should be implemented to process messages at least once anyway. I can run a few tests to see if the messages processing repetition is noticeable in our e2e tests if we optimize for throughput. |
I'd say let's pick one. Then if customers ask for the other one, or complain about the one we picked, we can then always come back and revisit this. I am happy with "you're expected to ensure your consumer is idempotent b/c at-least-once semantics" and go for the higher throughput. |
Checkpoint saving current is done using Consumer.Commit which blocks the thread. An alternative is to use StoreOffset that will save the checkpoint asynchronously in librdkafka.
Commit is more accurate while StoreOffset offers a better throughput.
Would love your feedback @jeffhollan, @anirudhgarg and @ryancrawcour
The text was updated successfully, but these errors were encountered: