View Source KlifeProtocol.Messages.AddPartitionsToTxn (Klife Protocol v0.5.0)

Kafka protocol AddPartitionsToTxn message

Request versions summary:

  • Version 1 is the same as version 0.
  • Version 2 adds the support for new error code PRODUCER_FENCED.
  • Version 3 enables flexible versions.
  • Version 4 adds VerifyOnly field to check if partitions are already in transaction and adds support to batch multiple transactions.
  • Version 5 adds support for new error code TRANSACTION_ABORTABLE (KIP-890). Versions 3 and below will be exclusively used by clients and versions 4 and above will be used by brokers.

Response versions summary:

  • Starting in version 1, on quota violation brokers send out responses before throttling.
  • Version 2 adds the support for new error code PRODUCER_FENCED.
  • Version 3 enables flexible versions.
  • Version 4 adds support to batch multiple transactions and a top level error code.
  • Version 5 adds support for new error code TRANSACTION_ABORTABLE (KIP-890).

Link to this section Summary

Functions

Returns the message api key number.

Receive a binary in the kafka wire format and deserialize it into a map.

Returns the current max supported version of this message.

Returns the current min supported version of this message.

Receives a map and serialize it to kafka wire format of the given version.

Link to this section Functions

Returns the message api key number.

Link to this function

deserialize_response(data, version, with_header? \\ true)

View Source

Receive a binary in the kafka wire format and deserialize it into a map.

Response content fields:

  • throttle_time_ms: Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. (int32 | versions 0+)

  • error_code: The response top level error code. (int16 | versions 4+)

  • results_by_transaction: Results categorized by transactional ID. ([]AddPartitionsToTxnResult | versions 4+)

    • transactional_id: The transactional id corresponding to the transaction. (string | versions 4+)

    • topic_results: The results for each topic. ([]AddPartitionsToTxnTopicResult | versions 4+)

      • name: The topic name. (string | versions 0+)

      • results_by_partition: The results for each partition ([]AddPartitionsToTxnPartitionResult | versions 0+)

  • results_by_topic_v3_and_below: The results for each topic. ([]AddPartitionsToTxnTopicResult | versions 0-3)

    • name: The topic name. (string | versions 0+)

    • results_by_partition: The results for each partition ([]AddPartitionsToTxnPartitionResult | versions 0+)

Returns the current max supported version of this message.

Returns the current min supported version of this message.

Link to this function

serialize_request(map, version)

View Source

Receives a map and serialize it to kafka wire format of the given version.

Input content fields:

  • transactions: List of transactions to add partitions to. ([]AddPartitionsToTxnTransaction | versions 4+)

    • transactional_id: The transactional id corresponding to the transaction. (string | versions 4+)

    • producer_id: Current producer id in use by the transactional id. (int64 | versions 4+)

    • producer_epoch: Current epoch associated with the producer id. (int16 | versions 4+)

    • verify_only: Boolean to signify if we want to check if the partition is in the transaction rather than add it. (bool | versions 4+)

    • topics: The partitions to add to the transaction. ([]AddPartitionsToTxnTopic | versions 4+)

      • name: The name of the topic. (string | versions 0+)

      • partitions: The partition indexes to add to the transaction ([]int32 | versions 0+)

  • v3_and_below_transactional_id: The transactional id corresponding to the transaction. (string | versions 0-3)

  • v3_and_below_producer_id: Current producer id in use by the transactional id. (int64 | versions 0-3)

  • v3_and_below_producer_epoch: Current epoch associated with the producer id. (int16 | versions 0-3)

  • v3_and_below_topics: The partitions to add to the transaction. ([]AddPartitionsToTxnTopic | versions 0-3)

    • name: The name of the topic. (string | versions 0+)

    • partitions: The partition indexes to add to the transaction ([]int32 | versions 0+)