DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.
Status
Current state: Under Discussion
Discussion thread:
JIRA: KAFKA-15309
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
The producer collects multiple records into batches, and a single record-specific error might fail the whole batch (e.g., `RecordTooLargeException`).
This KIP suggests adding a per-record error handler that allows users to opt into skipping bad records without failing the entire batch (similar to Kafka Streams `ProductionExceptionHandler`).
Another example for which a production exception handler could be useful is if a user tries to write into a non-existing topic, which returns a retryable error code; with infinite retries, the producer would hang retrying forever. A handler could help to break the infinite retry loop.
Public Interfaces
The interface ClientExceptionHandler and the class TransactionExceptionHandler are defined as described below.
Proposed Changes
Compatibility, Deprecation, and Migration Plan
Changed behavior: in some cases such as having too large records, the transaction does not abort. Just all the related info is logged.
Test Plan
Modyfying affected unit tests as well as adding an integration test for all the affected cases.