decoded() = {tag(), Key::kpro:struct(), Value::kpro:struct()}
tag() = offset | group
decode/2 | This function takes key and value binaries of a kafka message consumed from __consumer_offsets topic, and return decoded values with a tag. |
decode(KeyBin::binary(), ValueBin::undefined | binary()) -> decoded()
This function takes key and value binaries of a kafka message consumed from __consumer_offsets topic, and return decoded values with a tag. spec: {Tag :: offset | group, DecodedKey, DecodedValue}
NOTE! DecodedValue can be an empty list (when consumer group is dead or after offset is expired).
Key Fields when version = 0 | 1 (committed offset) version :: 0 | 1 group_id :: binary() topic :: binary() partition :: integer()
Key Fields when version = 2 (consumer group metadata) version :: 2 group_id :: binary()
Value Fields (when key version is 0 | 1): version :: 0 | 1 offset :: integer() metdata :: binary() timestamp :: integer() when version = 0 commit_time :: integer() when version = 1 expire_time :: integer() when version = 1
Value Fields (when key version is 2): version :: integer() %% up to the consuemr implementation protocol_type :: binary() %% should be<<"consumer">>
but not must
generation_id :: integer()
protocol :: binary() %% <<"roundrobin">>
etc.
leader :: binary()
members :: array of
member_id :: binary()
client_id :: binary()
client_host :: binary()
session_timeout :: integer() %% milliseconds
subscription ::
version :: integer()
topics :: [binary()]
user_data :: binary()
assignment (nullable)
version :: integer()
topic_partitions :: [{Topic::binary(), [Partition::integer()]}]
user_data :: undefined | binary()
Generated by EDoc