conduktor.io ↗

Kafka AddPartitionsToTxn Request Wire Format v2 — Binary Protocol Layout

What is AddPartitionsToTxn?

Transactional producers send this before writing to any new partition within a transaction to register it with the coordinator. CONCURRENT_TRANSACTIONS means another producer with the same transactional.id is still active and must complete or time out first.

Related Errors

CONCURRENT_TRANSACTIONS · COORDINATOR_NOT_AVAILABLE · INVALID_PRODUCER_EPOCH · INVALID_PRODUCER_ID_MAPPING · INVALID_REQUEST · INVALID_TRANSACTION_TIMEOUT · INVALID_TXN_STATE · NOT_COORDINATOR · OPERATION_NOT_ATTEMPTED · PRODUCER_FENCED · TOPIC_AUTHORIZATION_FAILED · TRANSACTIONAL_ID_AUTHORIZATION_FAILED · TRANSACTIONAL_ID_NOT_FOUND · TRANSACTION_ABORTABLE · UNKNOWN_TOPIC_OR_PARTITION · UNSUPPORTED_VERSION

Wire Diagram

Request Header
message_size int32 · 4B
api_key int16 · 2B
api_version int16 · 2B
correlation_id int32 · 4B
client_id string
AddPartitionsToTxnRequest v2
V3AndBelowTransactionalId string
V3AndBelowProducerId int64 · 8B
V3AndBelowProducerEpoch int16 · 2B
V3AndBelowTopics array
Name string
Partitions []int32

Schema & Example

Schema
{
  "V3AndBelowTransactionalId": string,
  "V3AndBelowProducerId": int64,
  "V3AndBelowProducerEpoch": int16,
  "V3AndBelowTopics": [{
      "Name": string,
      "Partitions": [int32]
  }]
}
Example
{
  "V3AndBelowTransactionalId": "abc-123",
  "V3AndBelowProducerId": 0,
  "V3AndBelowProducerEpoch": 12,
  "V3AndBelowTopics": [{
      "Name": "orders",
      "Partitions": [1, 2, 3]
  }]
}