View Source KafkaEx.Protocol.Kayrock.ListOffsets.RequestHelpers (kafka_ex v1.0.0-rc.1)

Shared utility functions for building ListOffsets requests.

These are low-level utilities used by the version-specific request implementations for V2+ (which share the isolation_level field).

Version-specific Kayrock schema differences

  • V2-V3: replica_id, isolation_level, topics: [{topic, partitions: [{partition, timestamp}]}]
  • V4-V5: Same as V3 but partitions include current_leader_epoch

Note: Kayrock's V3 schema does not include current_leader_epoch in partitions (it was added in Kayrock's V4). The build_request_v2_plus/3 helper conditionally adds this field based on the api_version parameter.

Summary

Functions

Builds a ListOffsets request for V2+ versions with all applicable fields.

Builds the topics structure for ListOffsets requests.

Functions

Link to this function

build_request_v2_plus(request_template, opts, api_version)

View Source
@spec build_request_v2_plus(struct(), Keyword.t(), integer()) :: struct()

Builds a ListOffsets request for V2+ versions with all applicable fields.

Handles the common pattern of V2+ requests which share:

  • replica_id (all versions)
  • isolation_level (V2+)
  • topics with partitions containing partition and timestamp
  • current_leader_epoch in partitions (V4+ only, when Kayrock schema supports it)

This helper reduces duplication across V2-V5 request implementations.

Link to this function

build_topics(opts, api_version)

View Source
@spec build_topics(Keyword.t(), integer()) :: [map()]

Builds the topics structure for ListOffsets requests.

For V2-V3: partitions contain partition and timestamp. For V4+: partitions also contain current_leader_epoch.