View Source KlifeProtocol.Messages.Vote (Klife Protocol v0.9.0)

Kafka protocol Vote message

Request versions summary:

  • Version 1 adds voter key and directory id (KIP-853) Version 2 adds PreVote field and renames candidate to replica

Response versions summary:

  • Version 1 adds leader endpoint (KIP-853) Version 2 handles PreVote requests

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:

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

  • topics: The results for each topic. ([]TopicData | versions 0+)

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

    • partitions: The results for each partition. ([]PartitionData | versions 0+)

      • partition_index: The partition index. (int32 | versions 0+)

      • error_code: The partition level error code. (int16 | versions 0+)

      • leader_id: The ID of the current leader or -1 if the leader is unknown. (int32 | versions 0+)

      • leader_epoch: The latest known leader epoch. (int32 | versions 0+)

      • vote_granted: True if the vote was granted and false otherwise. (bool | versions 0+)

  • node_endpoints: Endpoints for all current-leaders enumerated in PartitionData. ([]NodeEndpoint | versions 1+)

    • node_id: The ID of the associated node. (int32 | versions 1+)

    • host: The node's hostname. (string | versions 1+)

    • port: The node's port. (uint16 | versions 1+)

Returns the current max supported version of this message.

Returns the current min supported version of this message.

Link to this function

request_schema(unkown_version)

View Source
Link to this function

response_schema(unkown_version)

View Source
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:

  • cluster_id: The cluster id. (string | versions 0+)

  • voter_id: The replica id of the voter receiving the request. (int32 | versions 1+)

  • topics: The topic data. ([]TopicData | versions 0+)

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

    • partitions: The partition data. ([]PartitionData | versions 0+)

      • partition_index: The partition index. (int32 | versions 0+)

      • replica_epoch: The epoch of the voter sending the request (int32 | versions 0+)

      • replica_id: The replica id of the voter sending the request (int32 | versions 0+)

      • replica_directory_id: The directory id of the voter sending the request (uuid | versions 1+)

      • voter_directory_id: The directory id of the voter receiving the request (uuid | versions 1+)

      • last_offset_epoch: The epoch of the last record written to the metadata log. (int32 | versions 0+)

      • last_offset: The log end offset of the metadata log of the voter sending the request. (int64 | versions 0+)

      • pre_vote: Whether the request is a PreVote request (not persisted) or not. (bool | versions 2+)