Packages
kafka_protocol
1.1.0
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.9
4.2.8
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.10
4.1.9
4.1.8
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.3
4.0.2
4.0.1
3.0.1
3.0.0
2.4.1
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.2
2.1.1
2.1.0
2.0.1
2.0.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.4.0
0.3.2
0.3.1
0.2.3
Kafka protocol library for Erlang/Elixir
Current section
Files
Jump to
Current section
Files
priv/kafka.bnf
# generated code, do not edit!
ProduceRequestV0 => acks timeout [topic_data]
acks => INT16
timeout => INT32
topic_data => topic [data]
topic => STRING
data => partition record_set
partition => INT32
record_set => RECORDS
# acks: The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR.
# timeout: The time to await a response in ms.
ProduceRequestV1 => acks timeout [topic_data]
acks => INT16
timeout => INT32
topic_data => topic [data]
topic => STRING
data => partition record_set
partition => INT32
record_set => RECORDS
# acks: The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR.
# timeout: The time to await a response in ms.
ProduceRequestV2 => acks timeout [topic_data]
acks => INT16
timeout => INT32
topic_data => topic [data]
topic => STRING
data => partition record_set
partition => INT32
record_set => RECORDS
# acks: The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR.
# timeout: The time to await a response in ms.
ProduceResponseV0 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code base_offset
partition => INT32
error_code => INT16
base_offset => INT64
ProduceResponseV1 => [responses] throttle_time_ms
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code base_offset
partition => INT32
error_code => INT16
base_offset => INT64
throttle_time_ms => INT32
# throttle_time_ms: Duration in milliseconds for which the request was throttled due to quota violation. (Zero if the request did not violate any quota.)
ProduceResponseV2 => [responses] throttle_time_ms
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code base_offset log_append_time
partition => INT32
error_code => INT16
base_offset => INT64
log_append_time => INT64
throttle_time_ms => INT32
# log_append_time: The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1. If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended.
# throttle_time_ms: Duration in milliseconds for which the request was throttled due to quota violation. (Zero if the request did not violate any quota.)
FetchRequestV0 => replica_id max_wait_time min_bytes [topics]
replica_id => INT32
max_wait_time => INT32
min_bytes => INT32
topics => topic [partitions]
topic => STRING
partitions => partition fetch_offset max_bytes
partition => INT32
fetch_offset => INT64
max_bytes => INT32
# replica_id: Broker id of the follower. For normal consumers, use -1.
# max_wait_time: Maximum time in ms to wait for the response.
# min_bytes: Minimum bytes to accumulate in the response.
# topics: Topics to fetch.
# topic: Topic to fetch.
# partitions: Partitions to fetch.
# partition: Topic partition id.
# fetch_offset: Message offset.
# max_bytes: Maximum bytes to fetch.
FetchRequestV1 => replica_id max_wait_time min_bytes [topics]
replica_id => INT32
max_wait_time => INT32
min_bytes => INT32
topics => topic [partitions]
topic => STRING
partitions => partition fetch_offset max_bytes
partition => INT32
fetch_offset => INT64
max_bytes => INT32
# replica_id: Broker id of the follower. For normal consumers, use -1.
# max_wait_time: Maximum time in ms to wait for the response.
# min_bytes: Minimum bytes to accumulate in the response.
# topics: Topics to fetch.
# topic: Topic to fetch.
# partitions: Partitions to fetch.
# partition: Topic partition id.
# fetch_offset: Message offset.
# max_bytes: Maximum bytes to fetch.
FetchRequestV2 => replica_id max_wait_time min_bytes [topics]
replica_id => INT32
max_wait_time => INT32
min_bytes => INT32
topics => topic [partitions]
topic => STRING
partitions => partition fetch_offset max_bytes
partition => INT32
fetch_offset => INT64
max_bytes => INT32
# replica_id: Broker id of the follower. For normal consumers, use -1.
# max_wait_time: Maximum time in ms to wait for the response.
# min_bytes: Minimum bytes to accumulate in the response.
# topics: Topics to fetch.
# topic: Topic to fetch.
# partitions: Partitions to fetch.
# partition: Topic partition id.
# fetch_offset: Message offset.
# max_bytes: Maximum bytes to fetch.
FetchRequestV3 => replica_id max_wait_time min_bytes max_bytes [topics]
replica_id => INT32
max_wait_time => INT32
min_bytes => INT32
max_bytes => INT32
topics => topic [partitions]
topic => STRING
partitions => partition fetch_offset max_bytes
partition => INT32
fetch_offset => INT64
max_bytes => INT32
# replica_id: Broker id of the follower. For normal consumers, use -1.
# max_wait_time: Maximum time in ms to wait for the response.
# min_bytes: Minimum bytes to accumulate in the response.
# max_bytes: Maximum bytes to accumulate in the response. Note that this is not an absolute maximum, if the first message in the first non-empty partition of the fetch is larger than this value, the message will still be returned to ensure that progress can be made.
# topics: Topics to fetch in the order provided.
# topic: Topic to fetch.
# partitions: Partitions to fetch.
# partition: Topic partition id.
# fetch_offset: Message offset.
# max_bytes: Maximum bytes to fetch.
FetchResponseV0 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition_header record_set
partition_header => partition error_code high_watermark
partition => INT32
error_code => INT16
high_watermark => INT64
record_set => RECORDS
# partition: Topic partition id.
# high_watermark: Last committed offset.
FetchResponseV1 => throttle_time_ms [responses]
throttle_time_ms => INT32
responses => topic [partition_responses]
topic => STRING
partition_responses => partition_header record_set
partition_header => partition error_code high_watermark
partition => INT32
error_code => INT16
high_watermark => INT64
record_set => RECORDS
# throttle_time_ms: Duration in milliseconds for which the request was throttled due to quota violation. (Zero if the request did not violate any quota.)
# partition: Topic partition id.
# high_watermark: Last committed offset.
FetchResponseV2 => throttle_time_ms [responses]
throttle_time_ms => INT32
responses => topic [partition_responses]
topic => STRING
partition_responses => partition_header record_set
partition_header => partition error_code high_watermark
partition => INT32
error_code => INT16
high_watermark => INT64
record_set => RECORDS
# throttle_time_ms: Duration in milliseconds for which the request was throttled due to quota violation. (Zero if the request did not violate any quota.)
# partition: Topic partition id.
# high_watermark: Last committed offset.
FetchResponseV3 => throttle_time_ms [responses]
throttle_time_ms => INT32
responses => topic [partition_responses]
topic => STRING
partition_responses => partition_header record_set
partition_header => partition error_code high_watermark
partition => INT32
error_code => INT16
high_watermark => INT64
record_set => RECORDS
# throttle_time_ms: Duration in milliseconds for which the request was throttled due to quota violation. (Zero if the request did not violate any quota.)
# partition: Topic partition id.
# high_watermark: Last committed offset.
OffsetsRequestV0 => replica_id [topics]
replica_id => INT32
topics => topic [partitions]
topic => STRING
partitions => partition timestamp max_num_offsets
partition => INT32
timestamp => INT64
max_num_offsets => INT32
# replica_id: Broker id of the follower. For normal consumers, use -1.
# topics: Topics to list offsets.
# topic: Topic to list offset.
# partitions: Partitions to list offset.
# partition: Topic partition id.
# timestamp: Timestamp.
# max_num_offsets: Maximum offsets to return.
OffsetsRequestV1 => replica_id [topics]
replica_id => INT32
topics => topic [partitions]
topic => STRING
partitions => partition timestamp
partition => INT32
timestamp => INT64
# replica_id: Broker id of the follower. For normal consumers, use -1.
# topics: Topics to list offsets.
# topic: Topic to list offset.
# partitions: Partitions to list offset.
# partition: Topic partition id.
# timestamp: The target timestamp for the partition.
OffsetsResponseV0 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code [offsets]
partition => INT32
error_code => INT16
offsets => INT64
# partition: Topic partition id.
# offsets: A list of offsets.
OffsetsResponseV1 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code timestamp offset
partition => INT32
error_code => INT16
timestamp => INT64
offset => INT64
# partition: Topic partition id.
# timestamp: The timestamp associated with the returned offset
# offset: offset found
MetadataRequestV0 => [topics]
topics => STRING
# topics: An array of topics to fetch metadata for. If no topics are specified fetch metadata for all topics.
MetadataRequestV1 => [topics]
topics => STRING
# topics: An array of topics to fetch metadata for. If the topics array is null fetch metadata for all topics.
MetadataRequestV2 => [topics]
topics => STRING
# topics: An array of topics to fetch metadata for. If the topics array is null fetch metadata for all topics.
MetadataResponseV0 => [brokers] [topic_metadata]
brokers => node_id host port
node_id => INT32
host => STRING
port => INT32
topic_metadata => topic_error_code topic [partition_metadata]
topic_error_code => INT16
topic => STRING
partition_metadata => partition_error_code partition_id leader [replicas] [isr]
partition_error_code => INT16
partition_id => INT32
leader => INT32
replicas => INT32
isr => INT32
# brokers: Host and port information for all brokers.
# node_id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
# topic_error_code: The error code for the given topic.
# topic: The name of the topic
# partition_metadata: Metadata for each partition of the topic.
# partition_error_code: The error code for the partition, if any.
# partition_id: The id of the partition.
# leader: The id of the broker acting as leader for this partition.
# replicas: The set of all nodes that host this partition.
# isr: The set of nodes that are in sync with the leader for this partition.
MetadataResponseV1 => [brokers] controller_id [topic_metadata]
brokers => node_id host port rack
node_id => INT32
host => STRING
port => INT32
rack => NULLABLE_STRING
controller_id => INT32
topic_metadata => topic_error_code topic is_internal [partition_metadata]
topic_error_code => INT16
topic => STRING
is_internal => BOOLEAN
partition_metadata => partition_error_code partition_id leader [replicas] [isr]
partition_error_code => INT16
partition_id => INT32
leader => INT32
replicas => INT32
isr => INT32
# brokers: Host and port information for all brokers.
# node_id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
# rack: The rack of the broker.
# controller_id: The broker id of the controller broker.
# topic_error_code: The error code for the given topic.
# topic: The name of the topic
# is_internal: Indicates if the topic is considered a Kafka internal topic
# partition_metadata: Metadata for each partition of the topic.
# partition_error_code: The error code for the partition, if any.
# partition_id: The id of the partition.
# leader: The id of the broker acting as leader for this partition.
# replicas: The set of all nodes that host this partition.
# isr: The set of nodes that are in sync with the leader for this partition.
MetadataResponseV2 => [brokers] cluster_id controller_id [topic_metadata]
brokers => node_id host port rack
node_id => INT32
host => STRING
port => INT32
rack => NULLABLE_STRING
cluster_id => NULLABLE_STRING
controller_id => INT32
topic_metadata => topic_error_code topic is_internal [partition_metadata]
topic_error_code => INT16
topic => STRING
is_internal => BOOLEAN
partition_metadata => partition_error_code partition_id leader [replicas] [isr]
partition_error_code => INT16
partition_id => INT32
leader => INT32
replicas => INT32
isr => INT32
# brokers: Host and port information for all brokers.
# node_id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
# rack: The rack of the broker.
# cluster_id: The cluster id that this broker belongs to.
# controller_id: The broker id of the controller broker.
# topic_error_code: The error code for the given topic.
# topic: The name of the topic
# is_internal: Indicates if the topic is considered a Kafka internal topic
# partition_metadata: Metadata for each partition of the topic.
# partition_error_code: The error code for the partition, if any.
# partition_id: The id of the partition.
# leader: The id of the broker acting as leader for this partition.
# replicas: The set of all nodes that host this partition.
# isr: The set of nodes that are in sync with the leader for this partition.
LeaderAndIsrRequestV0 => controller_id controller_epoch [partition_states] [live_leaders]
controller_id => INT32
controller_epoch => INT32
partition_states => topic partition controller_epoch leader leader_epoch [isr] zk_version [replicas]
topic => STRING
partition => INT32
controller_epoch => INT32
leader => INT32
leader_epoch => INT32
isr => INT32
zk_version => INT32
replicas => INT32
live_leaders => id host port
id => INT32
host => STRING
port => INT32
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# topic: Topic name.
# partition: Topic partition id.
# controller_epoch: The controller epoch.
# leader: The broker id for the leader.
# leader_epoch: The leader epoch.
# isr: The in sync replica ids.
# zk_version: The ZK version.
# replicas: The replica ids.
# id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
LeaderAndIsrResponseV0 => error_code [partitions]
error_code => INT16
partitions => topic partition error_code
topic => STRING
partition => INT32
error_code => INT16
# error_code: Error code.
# topic: Topic name.
# partition: Topic partition id.
# error_code: Error code.
StopReplicaRequestV0 => controller_id controller_epoch delete_partitions [partitions]
controller_id => INT32
controller_epoch => INT32
delete_partitions => BOOLEAN
partitions => topic partition
topic => STRING
partition => INT32
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# delete_partitions: Boolean which indicates if replica's partitions must be deleted.
# topic: Topic name.
# partition: Topic partition id.
StopReplicaResponseV0 => error_code [partitions]
error_code => INT16
partitions => topic partition error_code
topic => STRING
partition => INT32
error_code => INT16
# error_code: Error code.
# topic: Topic name.
# partition: Topic partition id.
# error_code: Error code.
UpdateMetadataRequestV0 => controller_id controller_epoch [partition_states] [live_brokers]
controller_id => INT32
controller_epoch => INT32
partition_states => topic partition controller_epoch leader leader_epoch [isr] zk_version [replicas]
topic => STRING
partition => INT32
controller_epoch => INT32
leader => INT32
leader_epoch => INT32
isr => INT32
zk_version => INT32
replicas => INT32
live_brokers => id host port
id => INT32
host => STRING
port => INT32
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# topic: Topic name.
# partition: Topic partition id.
# controller_epoch: The controller epoch.
# leader: The broker id for the leader.
# leader_epoch: The leader epoch.
# isr: The in sync replica ids.
# zk_version: The ZK version.
# replicas: The replica ids.
# id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
UpdateMetadataRequestV1 => controller_id controller_epoch [partition_states] [live_brokers]
controller_id => INT32
controller_epoch => INT32
partition_states => topic partition controller_epoch leader leader_epoch [isr] zk_version [replicas]
topic => STRING
partition => INT32
controller_epoch => INT32
leader => INT32
leader_epoch => INT32
isr => INT32
zk_version => INT32
replicas => INT32
live_brokers => id [end_points]
id => INT32
end_points => port host security_protocol_type
port => INT32
host => STRING
security_protocol_type => INT16
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# topic: Topic name.
# partition: Topic partition id.
# controller_epoch: The controller epoch.
# leader: The broker id for the leader.
# leader_epoch: The leader epoch.
# isr: The in sync replica ids.
# zk_version: The ZK version.
# replicas: The replica ids.
# id: The broker id.
# port: The port on which the broker accepts requests.
# host: The hostname of the broker.
# security_protocol_type: The security protocol type.
UpdateMetadataRequestV2 => controller_id controller_epoch [partition_states] [live_brokers]
controller_id => INT32
controller_epoch => INT32
partition_states => topic partition controller_epoch leader leader_epoch [isr] zk_version [replicas]
topic => STRING
partition => INT32
controller_epoch => INT32
leader => INT32
leader_epoch => INT32
isr => INT32
zk_version => INT32
replicas => INT32
live_brokers => id [end_points] rack
id => INT32
end_points => port host security_protocol_type
port => INT32
host => STRING
security_protocol_type => INT16
rack => NULLABLE_STRING
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# topic: Topic name.
# partition: Topic partition id.
# controller_epoch: The controller epoch.
# leader: The broker id for the leader.
# leader_epoch: The leader epoch.
# isr: The in sync replica ids.
# zk_version: The ZK version.
# replicas: The replica ids.
# id: The broker id.
# port: The port on which the broker accepts requests.
# host: The hostname of the broker.
# security_protocol_type: The security protocol type.
# rack: The rack
UpdateMetadataRequestV3 => controller_id controller_epoch [partition_states] [live_brokers]
controller_id => INT32
controller_epoch => INT32
partition_states => topic partition controller_epoch leader leader_epoch [isr] zk_version [replicas]
topic => STRING
partition => INT32
controller_epoch => INT32
leader => INT32
leader_epoch => INT32
isr => INT32
zk_version => INT32
replicas => INT32
live_brokers => id [end_points] rack
id => INT32
end_points => port host listener_name security_protocol_type
port => INT32
host => STRING
listener_name => STRING
security_protocol_type => INT16
rack => NULLABLE_STRING
# controller_id: The controller id.
# controller_epoch: The controller epoch.
# topic: Topic name.
# partition: Topic partition id.
# controller_epoch: The controller epoch.
# leader: The broker id for the leader.
# leader_epoch: The leader epoch.
# isr: The in sync replica ids.
# zk_version: The ZK version.
# replicas: The replica ids.
# id: The broker id.
# port: The port on which the broker accepts requests.
# host: The hostname of the broker.
# listener_name: The listener name.
# security_protocol_type: The security protocol type.
# rack: The rack
UpdateMetadataResponseV0 => error_code
error_code => INT16
# error_code: Error code.
UpdateMetadataResponseV1 => error_code
error_code => INT16
# error_code: Error code.
UpdateMetadataResponseV2 => error_code
error_code => INT16
# error_code: Error code.
UpdateMetadataResponseV3 => error_code
error_code => INT16
# error_code: Error code.
ControlledShutdownRequestV1 => broker_id
broker_id => INT32
# broker_id: The id of the broker for which controlled shutdown has been requested.
ControlledShutdownResponseV1 => error_code [partitions_remaining]
error_code => INT16
partitions_remaining => topic partition
topic => STRING
partition => INT32
# partitions_remaining: The partitions that the broker still leads.
# partition: Topic partition id.
OffsetCommitRequestV0 => group_id [topics]
group_id => STRING
topics => topic [partitions]
topic => STRING
partitions => partition offset metadata
partition => INT32
offset => INT64
metadata => NULLABLE_STRING
# group_id: The group id.
# topics: Topics to commit offsets.
# topic: Topic to commit.
# partitions: Partitions to commit offsets.
# partition: Topic partition id.
# offset: Message offset to be committed.
# metadata: Any associated metadata the client wants to keep.
OffsetCommitRequestV1 => group_id group_generation_id member_id [topics]
group_id => STRING
group_generation_id => INT32
member_id => STRING
topics => topic [partitions]
topic => STRING
partitions => partition offset timestamp metadata
partition => INT32
offset => INT64
timestamp => INT64
metadata => NULLABLE_STRING
# group_id: The group id.
# group_generation_id: The generation of the group.
# member_id: The member id assigned by the group coordinator.
# topics: Topics to commit offsets.
# topic: Topic to commit.
# partitions: Partitions to commit offsets.
# partition: Topic partition id.
# offset: Message offset to be committed.
# timestamp: Timestamp of the commit
# metadata: Any associated metadata the client wants to keep.
OffsetCommitRequestV2 => group_id group_generation_id member_id retention_time [topics]
group_id => STRING
group_generation_id => INT32
member_id => STRING
retention_time => INT64
topics => topic [partitions]
topic => STRING
partitions => partition offset metadata
partition => INT32
offset => INT64
metadata => NULLABLE_STRING
# group_id: The group id.
# group_generation_id: The generation of the consumer group.
# member_id: The consumer id assigned by the group coordinator.
# retention_time: Time period in ms to retain the offset.
# topics: Topics to commit offsets.
# topic: Topic to commit.
# partitions: Partitions to commit offsets.
# partition: Topic partition id.
# offset: Message offset to be committed.
# metadata: Any associated metadata the client wants to keep.
OffsetCommitResponseV0 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code
partition => INT32
error_code => INT16
# partition: Topic partition id.
OffsetCommitResponseV1 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code
partition => INT32
error_code => INT16
# partition: Topic partition id.
OffsetCommitResponseV2 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition error_code
partition => INT32
error_code => INT16
# partition: Topic partition id.
OffsetFetchRequestV0 => group_id [topics]
group_id => STRING
topics => topic [partitions]
topic => STRING
partitions => partition
partition => INT32
# group_id: The consumer group id.
# topics: Topics to fetch offsets.
# topic: Topic to fetch offset.
# partitions: Partitions to fetch offsets.
# partition: Topic partition id.
OffsetFetchRequestV1 => group_id [topics]
group_id => STRING
topics => topic [partitions]
topic => STRING
partitions => partition
partition => INT32
# group_id: The consumer group id.
# topics: Topics to fetch offsets.
# topic: Topic to fetch offset.
# partitions: Partitions to fetch offsets.
# partition: Topic partition id.
OffsetFetchRequestV2 => group_id [topics]
group_id => STRING
topics => topic [partitions]
topic => STRING
partitions => partition
partition => INT32
# group_id: The consumer group id.
# topics: Topics to fetch offsets. If the topic array is null fetch offsets for all topics.
# topic: Topic to fetch offset.
# partitions: Partitions to fetch offsets.
# partition: Topic partition id.
OffsetFetchResponseV0 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition offset metadata error_code
partition => INT32
offset => INT64
metadata => NULLABLE_STRING
error_code => INT16
# partition: Topic partition id.
# offset: Last committed message offset.
# metadata: Any associated metadata the client wants to keep.
OffsetFetchResponseV1 => [responses]
responses => topic [partition_responses]
topic => STRING
partition_responses => partition offset metadata error_code
partition => INT32
offset => INT64
metadata => NULLABLE_STRING
error_code => INT16
# partition: Topic partition id.
# offset: Last committed message offset.
# metadata: Any associated metadata the client wants to keep.
OffsetFetchResponseV2 => [responses] error_code
responses => topic [partition_responses]
topic => STRING
partition_responses => partition offset metadata error_code
partition => INT32
offset => INT64
metadata => NULLABLE_STRING
error_code => INT16
error_code => INT16
# partition: Topic partition id.
# offset: Last committed message offset.
# metadata: Any associated metadata the client wants to keep.
GroupCoordinatorRequestV0 => group_id
group_id => STRING
# group_id: The unique group id.
GroupCoordinatorResponseV0 => error_code coordinator
error_code => INT16
coordinator => node_id host port
node_id => INT32
host => STRING
port => INT32
# coordinator: Host and port information for the coordinator for a consumer group.
# node_id: The broker id.
# host: The hostname of the broker.
# port: The port on which the broker accepts requests.
JoinGroupRequestV0 => group_id session_timeout member_id protocol_type [group_protocols]
group_id => STRING
session_timeout => INT32
member_id => STRING
protocol_type => STRING
group_protocols => protocol_name protocol_metadata
protocol_name => STRING
protocol_metadata => BYTES
# group_id: The group id.
# session_timeout: The coordinator considers the consumer dead if it receives no heartbeat after this timeout in ms.
# member_id: The assigned consumer id or an empty string for a new consumer.
# protocol_type: Unique name for class of protocols implemented by group
# group_protocols: List of protocols that the member supports
JoinGroupRequestV1 => group_id session_timeout rebalance_timeout member_id protocol_type [group_protocols]
group_id => STRING
session_timeout => INT32
rebalance_timeout => INT32
member_id => STRING
protocol_type => STRING
group_protocols => protocol_name protocol_metadata
protocol_name => STRING
protocol_metadata => BYTES
# group_id: The group id.
# session_timeout: The coordinator considers the consumer dead if it receives no heartbeat after this timeout in ms.
# rebalance_timeout: The maximum time that the coordinator will wait for each member to rejoin when rebalancing the group
# member_id: The assigned consumer id or an empty string for a new consumer.
# protocol_type: Unique name for class of protocols implemented by group
# group_protocols: List of protocols that the member supports
JoinGroupResponseV0 => error_code generation_id group_protocol leader_id member_id [members]
error_code => INT16
generation_id => INT32
group_protocol => STRING
leader_id => STRING
member_id => STRING
members => member_id member_metadata
member_id => STRING
member_metadata => BYTES
# generation_id: The generation of the consumer group.
# group_protocol: The group protocol selected by the coordinator
# leader_id: The leader of the group
# member_id: The consumer id assigned by the group coordinator.
JoinGroupResponseV1 => error_code generation_id group_protocol leader_id member_id [members]
error_code => INT16
generation_id => INT32
group_protocol => STRING
leader_id => STRING
member_id => STRING
members => member_id member_metadata
member_id => STRING
member_metadata => BYTES
# generation_id: The generation of the consumer group.
# group_protocol: The group protocol selected by the coordinator
# leader_id: The leader of the group
# member_id: The consumer id assigned by the group coordinator.
HeartbeatRequestV0 => group_id group_generation_id member_id
group_id => STRING
group_generation_id => INT32
member_id => STRING
# group_id: The group id.
# group_generation_id: The generation of the group.
# member_id: The member id assigned by the group coordinator.
HeartbeatResponseV0 => error_code
error_code => INT16
LeaveGroupRequestV0 => group_id member_id
group_id => STRING
member_id => STRING
# group_id: The group id.
# member_id: The member id assigned by the group coordinator.
LeaveGroupResponseV0 => error_code
error_code => INT16
SyncGroupRequestV0 => group_id generation_id member_id [group_assignment]
group_id => STRING
generation_id => INT32
member_id => STRING
group_assignment => member_id member_assignment
member_id => STRING
member_assignment => BYTES
SyncGroupResponseV0 => error_code member_assignment
error_code => INT16
member_assignment => BYTES
DescribeGroupsRequestV0 => [group_ids]
group_ids => STRING
# group_ids: List of groupIds to request metadata for (an empty groupId array will return empty group metadata).
DescribeGroupsResponseV0 => [groups]
groups => error_code group_id state protocol_type protocol [members]
error_code => INT16
group_id => STRING
state => STRING
protocol_type => STRING
protocol => STRING
members => member_id client_id client_host member_metadata member_assignment
member_id => STRING
client_id => STRING
client_host => STRING
member_metadata => BYTES
member_assignment => BYTES
# state: The current state of the group (one of: Dead, Stable, AwaitingSync, or PreparingRebalance, or empty if there is no active group)
# protocol_type: The current group protocol type (will be empty if there is no active group)
# protocol: The current group protocol (only provided if the group is Stable)
# members: Current group members (only provided if the group is not Dead)
# member_id: The memberId assigned by the coordinator
# client_id: The client id used in the member's latest join group request
# client_host: The client host used in the request session corresponding to the member's join group.
# member_metadata: The metadata corresponding to the current group protocol in use (will only be present if the group is stable).
# member_assignment: The current assignment provided by the group leader (will only be present if the group is stable).
ListGroupsRequestV0 =>
ListGroupsResponseV0 => error_code [groups]
error_code => INT16
groups => group_id protocol_type
group_id => STRING
protocol_type => STRING
SaslHandshakeRequestV0 => mechanism
mechanism => STRING
# mechanism: SASL Mechanism chosen by the client.
SaslHandshakeResponseV0 => error_code [enabled_mechanisms]
error_code => INT16
enabled_mechanisms => STRING
# enabled_mechanisms: Array of mechanisms enabled in the server.
ApiVersionsRequestV0 =>
ApiVersionsResponseV0 => error_code [api_versions]
error_code => INT16
api_versions => api_key min_version max_version
api_key => INT16
min_version => INT16
max_version => INT16
# error_code: Error code.
# api_versions: API versions supported by the broker.
# api_key: API key.
# min_version: Minimum supported version.
# max_version: Maximum supported version.
CreateTopicsRequestV0 => [create_topic_requests] timeout
create_topic_requests => topic num_partitions replication_factor [replica_assignment] [configs]
topic => STRING
num_partitions => INT32
replication_factor => INT16
replica_assignment => partition_id [replicas]
partition_id => INT32
replicas => INT32
configs => config_key config_value
config_key => STRING
config_value => STRING
timeout => INT32
# create_topic_requests: An array of single topic creation requests. Can not have multiple entries for the same topic.
# topic: Name for newly created topic.
# num_partitions: Number of partitions to be created. -1 indicates unset.
# replication_factor: Replication factor for the topic. -1 indicates unset.
# replica_assignment: Replica assignment among kafka brokers for this topic partitions. If this is set num_partitions and replication_factor must be unset.
# replicas: The set of all nodes that should host this partition. The first replica in the list is the preferred leader.
# configs: Topic level configuration for topic to be set.
# config_key: Configuration key name
# config_value: Configuration value
# timeout: The time in ms to wait for a topic to be completely created on the controller node. Values <= 0 will trigger topic creation and return immediately
CreateTopicsRequestV1 => [create_topic_requests] timeout validate_only
create_topic_requests => topic num_partitions replication_factor [replica_assignment] [configs]
topic => STRING
num_partitions => INT32
replication_factor => INT16
replica_assignment => partition_id [replicas]
partition_id => INT32
replicas => INT32
configs => config_key config_value
config_key => STRING
config_value => STRING
timeout => INT32
validate_only => BOOLEAN
# create_topic_requests: An array of single topic creation requests. Can not have multiple entries for the same topic.
# topic: Name for newly created topic.
# num_partitions: Number of partitions to be created. -1 indicates unset.
# replication_factor: Replication factor for the topic. -1 indicates unset.
# replica_assignment: Replica assignment among kafka brokers for this topic partitions. If this is set num_partitions and replication_factor must be unset.
# replicas: The set of all nodes that should host this partition. The first replica in the list is the preferred leader.
# configs: Topic level configuration for topic to be set.
# config_key: Configuration key name
# config_value: Configuration value
# timeout: The time in ms to wait for a topic to be completely created on the controller node. Values <= 0 will trigger topic creation and return immediately
# validate_only: If this is true, the request will be validated, but the topic won't be created.
CreateTopicsResponseV0 => [topic_errors]
topic_errors => topic error_code
topic => STRING
error_code => INT16
# topic_errors: An array of per topic error codes.
CreateTopicsResponseV1 => [topic_errors]
topic_errors => topic error_code error_message
topic => STRING
error_code => INT16
error_message => NULLABLE_STRING
# topic_errors: An array of per topic errors.
DeleteTopicsRequestV0 => [topics] timeout
topics => STRING
timeout => INT32
# topics: An array of topics to be deleted.
# timeout: The time in ms to wait for a topic to be completely deleted on the controller node. Values <= 0 will trigger topic deletion and return immediately
DeleteTopicsResponseV0 => [topic_error_codes]
topic_error_codes => topic error_code
topic => STRING
error_code => INT16
# topic_error_codes: An array of per topic error codes.