What is EndTxn?
Commits or aborts a transaction (committed=true or false). If a producer crashes without calling EndTxn, the transaction coordinator aborts it after transaction.timeout.ms, blocking read_committed consumers on that partition until the abort marker is written.
Wire Diagram
Request Header · flexible
message_size
int32 · 4B
api_key
int16 · 2B
api_version
int16 · 2B
correlation_id
int32 · 4B
client_id
string (compact)
tagged
var
EndTxnRequest v5
TransactionalId
string (compact)
ProducerId
int64 · 8B
ProducerEpoch
int16 · 2B
Committed
bool · 1B
tagged
var
Schema & Example
Schema { "TransactionalId": string, "ProducerId": int64, "ProducerEpoch": int16, "Committed": bool }
Example { "TransactionalId": "tx-orders-001", "ProducerId": 0, "ProducerEpoch": 12, "Committed": true }