View Source KafkaEx.Protocol.Kayrock.OffsetFetch.ResponseHelpers (kafka_ex v1.0.0-rc.1)

Shared helper functions for parsing OffsetFetch responses across all versions.

Version differences:

  • V0/V1: No top-level error_code field
  • V2+: Includes top-level error_code for broker-level errors
  • V5+: Adds committed_leader_epoch per partition (extracted dynamically)
  • V6: Flexible version (compact encodings, tagged fields -- handled by Kayrock)

Summary

Functions

Parses an OffsetFetch response with top-level error_code (V2+).

Parses an OffsetFetch response without top-level error_code (V0/V1).

Types

@type error_tuple() :: {atom(), String.t(), non_neg_integer()}

Functions

Link to this function

parse_response_with_top_level_error(map)

View Source
@spec parse_response_with_top_level_error(map()) ::
  {:ok, [KafkaEx.Messages.Offset.t()]} | {:error, any()}

Parses an OffsetFetch response with top-level error_code (V2+).

Handles all V2+ versions uniformly. When committed_leader_epoch is present in partition data (V5+), it is extracted into leader_epoch. When absent (V2-V4), leader_epoch defaults to nil.

Link to this function

parse_response_without_top_level_error(map)

View Source
@spec parse_response_without_top_level_error(map()) ::
  {:ok, [KafkaEx.Messages.Offset.t()]} | {:error, any()}

Parses an OffsetFetch response without top-level error_code (V0/V1).