conduktor.io ↗

Kafka WriteTxnMarkers Response Wire Format v2 — Binary Protocol Layout

What is WriteTxnMarkers?

After EndTxn, the transaction coordinator sends this internally (never user code) to write COMMIT or ABORT markers to every partition in the transaction. Consumers in read_committed mode are unblocked partition-by-partition as markers arrive, so a slow partition can delay consumption even if all others are done.

Related Errors

COORDINATOR_LOAD_IN_PROGRESS · COORDINATOR_NOT_AVAILABLE · CORRUPT_MESSAGE · INVALID_PRODUCER_EPOCH · INVALID_REGULAR_EXPRESSION · INVALID_REQUIRED_ACKS · KAFKA_STORAGE_ERROR · MESSAGE_TOO_LARGE · NOT_COORDINATOR · NOT_ENOUGH_REPLICAS · NOT_ENOUGH_REPLICAS_AFTER_APPEND · NOT_LEADER_OR_FOLLOWER · RECORD_LIST_TOO_LARGE · REQUEST_TIMED_OUT · TRANSACTION_COORDINATOR_FENCED · UNKNOWN_SERVER_ERROR · UNKNOWN_TOPIC_OR_PARTITION · UNSUPPORTED_FOR_MESSAGE_FORMAT · UNSUPPORTED_VERSION

Wire Diagram

Response Header · flexible
message_size int32 · 4B
correlation_id int32 · 4B
tagged var
WriteTxnMarkersResponse v2
Markers array
tagged var
ProducerId int64 · 8B
Topics array
tagged var
Name string (compact)
Partitions array
tagged var
PartitionIndex int32 · 4B
ErrorCode int16 · 2B
tagged var

Schema & Example

Schema
{
  "Markers": [{
      "ProducerId": int64,
      "Topics": [{
          "Name": string,
          "Partitions": [{
              "PartitionIndex": int32,
              "ErrorCode": int16
          }]
      }]
  }]
}
Example
{
  "Markers": [{
      "ProducerId": 0,
      "Topics": [{
          "Name": "orders",
          "Partitions": [{
              "PartitionIndex": 3,
              "ErrorCode": 0
          }]
      }]
  }]
}