Hello Jun,

Thank for the feedback,

Adding to the points above:

Regarding by_duration as an alternative to Scenario 1: beyond clock skew 
and retry issues, there is also a usability concern. by_duration requires users
to reason about operational timing — "how long does partition discovery take 
in my environment?”, and then translate that into a configuration value. 
to_start_time 
requires no such reasoning. It simply anchors to the group creation time 
recorded 
by the broker.

Regarding Scenario 2: I'd also like to clarify that to_start_time does not 
branch between 
"use latest" and "use earliest." It applies the same ListOffsetsRequest with 
the group creation 
timestamp in all cases. The difference in outcome:
- skipping old data on first start
- consuming surviving data after truncation
is a natural consequence of what data exists in the partition at that point, 
not a different policy 
being applied. The rule is always the same.

Best Regards,
Jiunn-Yang

> Chia-Ping Tsai <[email protected]> 於 2026年4月17日 上午9:48 寫道:
> 
> 
>> Jun Rao via dev <[email protected]> 於 2026年4月17日 凌晨4:57 寫道:
>> 
>> Also, a group is deleted after the consumer has been idle longer
>> than offsets.retention.minutes. What's the semantic of to_start_time if the
>> group creation time is unavailable?
> 
> If the group is recreated, a new creation time will be recorded. Hence, it 
> acts like a new group. Plus, it throws an exception directly if the group 
> truly has no creation time.

Reply via email to