conduktor.io ↗

KIP-739 — Block Less on KafkaProducer#send

Discussion Producer

Proposes a truly non-blocking `KafkaProducer.send()` overload that returns a `CompletableFuture` and never blocks the calling thread, even when partition metadata is unavailable or the record accumulator is full. The existing `send()` returns a `Future` but can silently block on metadata fetches or buffer-full conditions, causing deadlocks in async runtimes like Netty or gRPC that prohibit blocking the I/O thread.

Details

AuthorMoses Nakamura
StatusDiscussion
JIRAKAFKA-3539
WikiView on Apache Wiki
Created2021-05-12
Last Modified2021-05-20
Explore how this KIP affects the Kafka protocol in the Protocol Explorer, or see the full KIP database.