conduktor.io ↗

KIP-654 — Aborted transaction with non-flushed data should throw a non-fatal exception

Accepted Kafka 2.7 TransactionsProducer

KIP-654 introduces a `TransactionAbortedException` (extending `ApiException`) thrown when a transaction is aborted via `KafkaProducer.abortTransaction()` while there are still non-flushed pending records in the accumulator. The existing `KafkaException("Failing batch since transaction was aborted")` is treated as fatal by many error-handling frameworks, forcing clients to restart producers unnecessarily when the abort is actually a recoverable, expected flow.

Details

AuthorGokul Srinivas
StatusAccepted
Kafka Version2.7
JIRAKAFKA-10186
WikiView on Apache Wiki
Created2020-08-06
Last Modified2020-09-10
Explore how this KIP affects the Kafka protocol in the Protocol Explorer, or see the full KIP database.