- [Feature] Add
wait_timeout_on_transaction_abort(default0, disabled) - an opt-in mitigation for librdkafka#4849. librdkafka only marks a transaction as ongoing at the coordinator once theAddPartitionsToTxnresponse arrives, but it firesEndTxnas soon as that request has merely been sent. Aborting while the first produce is still in flight can therefore reach a coordinator that does not yet consider the transaction started, failing the abort with a fatalINVALID_TXN_STATEthat poisons the client and forces a full reload. When set to a positive value, we wait for the first delivery of the transaction to be acknowledged before aborting, for at most that long (in ms) - it is a ceiling rather than a fixed delay, so the wait ends as soon as the delivery is acknowledged. A single ack proves its partition completed registration, which is enough for the coordinator to acceptEndTxnregardless of how many partitions the transaction spans. It is off by default because it changes abort semantics: the awaited message is really written to the log (aborted, hence invisible toread_committedconsumers) instead of being purged, so its delivery handle reports a real offset rather than aPurged in queueerror and nomessage.purgedis emitted for it. The wait is bounded and best-effort - if it expires we abort exactly as before, and the fatal remains recoverable throughreload_on_transaction_fatal_error.