GitHub user farmdawgnation opened a pull request: https://github.com/apache/kafka/pull/4165
KAFKA 6086: Provide for custom error handling when Kafka Streams fails to produce This PR creates and implements the `ProductionExceptionHandler` as described in [KIP-210](https://cwiki.apache.org/confluence/display/KAFKA/KIP-210+-+Provide+for+custom+error+handling++when+Kafka+Streams+fails+to+produce). I've additionally provided some default implementations: `AlwaysFailProductionExceptionHandler` and `AlwaysContinueProductionExceptionHandler`. I fixed various compile errors in the tests that resulted from my changing of method signatures, but aside from that haven't gotten around to adding new tests for this functionality. I would be specifically interested in suggestions for the kinds of tests the committers would like to see. Barring any different suggestions, I'm probably going to add a few cases to `RecordCollectorTest`, I think, that exercise the always continue and always fail options to assert they do what they advertise? You can merge this pull request into a Git repository by running: $ git pull https://github.com/farmdawgnation/kafka msf/kafka-6086 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/4165.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4165 ---- commit 679c1e4e612f382a5d993144f1dc234821fe0d43 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-21T00:37:52Z Implement ProductionExceptionHandler This interface will be used to specify how to behave when there is an exception while producing a result record to Kafka. commit cfd357b2e9b3270393abd72813202f2a7cf950b5 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:00:00Z Provide an AlwaysFailProductionExceptionHandler. This is a default implementation of the production exception handler that will always instruct Streams to fail when there is an error producing. This implementation is consistent with the behavior before KIP-210 was implemented. commit 563933ca99838d7408e882f4114c4911cf1e5b59 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:02:22Z Provide an AlwaysContinueProductionExceptionHandler This production exception handler will always continue processing in light of errors producing result records. commit fbdd28507005557ae83e7809830667acd7f21b01 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:03:13Z Add config declaration for production exception handler commit 7ed622f08216aa8f4c8f2c988b58a29c997a66be Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:12:16Z Remove unused import commit d85172557f41b6a31599a3d8bd127ecdbd520413 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:19:46Z Create the ProductionExceptionHandler, provide to RecordCollectorImpl commit a856f4624e16ed286f5ba0d53b0b2096d7ef3c67 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:26:33Z Consult ProductionExceptionHandler when there are issues producing When an exception is returned to the onCompletion callback, consult the ProductionExceptionHandler when determining whether or not to fail the application. If the response is FAIL, preserve the existing behavior. If the response is not FAIL, simply log a warning and carry on. commit f1f1d371d344b9a3e15385dbb1ea880280291c43 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:33:17Z Invoke ProductionExceptionHandler for exceptions outside of onCompletion This permits the ProductionExceptionHandler to make decisions about whether or not to try to continue when any kind of exception results from invoking producer.send. commit f3dc407bf5629b6bdaa177ef2a8d3cdd39c9cda7 Author: Matt Farmer <m...@frmr.me> Date: 2017-10-31T17:50:58Z Correct compile errors in tests originating from signature changes ---- ---