conduktor.io ↗

Kafka TxnOffsetCommit Request Wire Format v0 — Binary Protocol Layout

What is TxnOffsetCommit?

Stages an offset commit as part of a transaction. The offsets aren't visible to other consumers until the transaction commits. If the transaction aborts, the offsets roll back and the consumer will reprocess those records.

Related Errors

COORDINATOR_LOAD_IN_PROGRESS · COORDINATOR_NOT_AVAILABLE · GROUP_AUTHORIZATION_FAILED · ILLEGAL_GENERATION · INVALID_GROUP_ID · OFFSET_METADATA_TOO_LARGE · TOPIC_AUTHORIZATION_FAILED · TRANSACTIONAL_ID_AUTHORIZATION_FAILED · UNKNOWN_TOPIC_OR_PARTITION

Wire Diagram

Request Header
message_size int32 · 4B
api_key int16 · 2B
api_version int16 · 2B
correlation_id int32 · 4B
client_id string
TxnOffsetCommitRequest v0
TransactionalId string
GroupId string
ProducerId int64 · 8B
ProducerEpoch int16 · 2B
Topics array
Name string
Partitions array
PartitionIndex int32 · 4B
CommittedOffset int64 · 8B
CommittedMetadata? string

Schema & Example

Schema
{
  "TransactionalId": string,
  "GroupId": string,
  "ProducerId": int64,
  "ProducerEpoch": int16,
  "Topics": [{
      "Name": string,
      "Partitions": [{
          "PartitionIndex": int32,
          "CommittedOffset": int64,
          "CommittedMetadata": string?
      }]
  }]
}
Example
{
  "TransactionalId": "tx-orders-001",
  "GroupId": "order-processors",
  "ProducerId": 0,
  "ProducerEpoch": 12,
  "Topics": [{
      "Name": "orders",
      "Partitions": [{
          "PartitionIndex": 3,
          "CommittedOffset": 150382,
          "CommittedMetadata": ""
      }]
  }]
}