Kafka consumer reliability/performance improvements #117
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.
Reliability: check/retry commit failures. By default, commit is asynchronous, and no error checking/logging is performed. This PR converts the commit call to a synchronous call, checks if any partition failed to commit, logs the errors, and retries failed commits.
Performance: originally, actions consumer commits offset after passing every single message to the user. Commit is very expensive by itself, and it causes a network round-trip, so processing of a heavily backed up topic may take a very long time. This changes the behavior of the consumer such that it only commits after messages that the user cares about, and all other messages are committed periodically, according to the standard auto-commit configuration.
@jjoyce0510