View Source KafkaEx.Protocol.Kayrock.JoinGroup.RequestHelpers (kafka_ex v1.0.0-rc.1)
Shared helper functions for building JoinGroup requests across all versions.
Summary
Functions
Builds group_protocols from a list of topics using the "assign" protocol.
Builds a JoinGroup V0 request by populating the request template with extracted fields.
Builds a JoinGroup V1/V2 request (adds rebalance_timeout).
Builds a JoinGroup V5+ request (adds group_instance_id for static membership, KIP-345).
Extracts common fields from request options. These fields are present in all versions (V0, V1, V2).
Functions
Builds group_protocols from a list of topics using the "assign" protocol.
Builds a JoinGroup V0 request by populating the request template with extracted fields.
Builds a JoinGroup V1/V2 request (adds rebalance_timeout).
Builds a JoinGroup V5+ request (adds group_instance_id for static membership, KIP-345).
The group_instance_id is used for static membership:
nil(default): Dynamic membership (same as V1-V4)- A string value: Static membership — the member keeps its assignment across restarts
@spec extract_common_fields(Keyword.t()) :: %{ group_id: String.t(), session_timeout: integer(), member_id: String.t(), protocol_type: String.t(), group_protocols: [map()] }
Extracts common fields from request options. These fields are present in all versions (V0, V1, V2).
If group_protocols is not provided but topics is, builds group_protocols
automatically using the "assign" protocol with GroupProtocolMetadata.