Hi,
Looks good now. Just one suggestion.

AS8: Instead of "back:30D", I wonder whether the word 'duration' ought to be
used to be consistent with kafka-consumer-groups.sh. So,
"by-duration:P3D" or "duration:P3D" might be better.

The overall idea of merging the configs into one config is fine in the current
text of the KIP.

Thanks,
Andrew

________________________________________
From: Manikumar <manikumar.re...@gmail.com>
Sent: 12 November 2024 13:30
To: dev@kafka.apache.org <dev@kafka.apache.org>
Subject: Re: [DISCUSS] KIP-1106: Add duration based offset reset option for 
consumer clients

Hi Apoorv,

AM7: AutoOffsetReset.java is for Kafka Streams API. I am not proposing any
public Interface/class for Kafka Consumer.
As mentioned in the KIP, even though OffsetResetStrategy is a public class,
it's not used in any public APIs. I think new internal classes should be
sufficient.

AM8: Fixed

AM9: This class is for kafka streams API

AM10: I was using the EARLIEST_TIMESTAMP, LATEST_TIMESTAMP constant values
from ListOffsetsRequest
<https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/requests/ListOffsetsRequest.java#L41>

But yes, we can use Optional in AutoOffsetReset class. Updated the KIP.


Thanks.



On Tue, Nov 12, 2024 at 6:15 PM Apoorv Mittal <apoorvmitta...@gmail.com>
wrote:

> Hi,
> I read the changes for single configuration and deprecated
> OffsetResetStrategy.java.
>
> AM7: Question: The KIP says that previous supported values were
> earliest/latest/none and new back:<duration> config would be added. We have
> no definition of "none" in the newly introduced AutoOffsetReset.java class
> hence I am assuming that if "none" is specified as a config option then
> that config will be ignored, correct? Or are we deprecating the usage of
> "none" altogether?
>
> AM8: Minor: The new class AutoOffsetReset under interfaces mentions the
> name as OffsetResetStrategy.java. This requires correction.
>
> AM9: Is the package name correct for AutoOffsetReset as
> org.apache.kafka.streams, shouldn't it be under clients package?
>
> AM10: What does -1L and -2L mean as long for latest and earliest in
> AutoOffsetReset.java? Is it just a long placeholder which will never be
> used elsewhere for latest and earliest? If yes then does it make sense to
> keep long as Optional, and use Optional.empty() for latest and earliest?
>
> Regards,
> Apoorv Mittal
>
>
> On Tue, Nov 12, 2024 at 12:06 PM Manikumar <manikumar.re...@gmail.com>
> wrote:
>
> > Thanks Ismael and Lianet for the reviews.
> >
> > Based on suggestions, I have updated the KIP to in favour of having a
> > single config (auto.offset.reset).
> > I have also adopted the Lianet's suggestion on naming.
> >
> > auto.offset.reset=back:P3D -> reset back 3 days
> >
> >
> > Let me know if there are any concerns.
> >
> >
> > Thanks,
> >
> >
> > On Sat, Nov 9, 2024 at 10:06 PM Lianet M. <liane...@gmail.com> wrote:
> > >
> > > Hi all. Thanks Manikumar for the nice improvement, useful indeed.
> > >
> > > I also lean towards having a single config given that it's all about
> the
> > > reset policy, seems all the same "what" (auto reset policy) and we are
> > > just extending the with a new behaviour. Regarding the naming (agree on
> > > duration being confusing), what about something to show that it's
> simply
> > > about how far back to reset:
> > >
> > > auto.offset.reset=EARLIEST
> > > auto.offset.reset=BACK:P3D -> reset back 3 days (combined with ISO8601
> > > seems really easy to read/understand from the config definition itself)
> > >
> > > Something like that would definitely break consistency with the command
> > > line tool argument "by_duration", but if it seems clearer we should
> > > consider the tradeoff and not penalize the consumer API/configs.
> > >
> > > Thanks!
> > >
> > > Lianet
> > >
> > >
> > > On Sat, Nov 9, 2024 at 2:47 AM Ismael Juma <m...@ismaeljuma.com> wrote:
> > >
> > > > Thanks for the KIP, this is useful. A comment below.
> > > >
> > > > On Thu, Nov 7, 2024 at 4:51 PM Matthias J. Sax <mj...@apache.org>
> > wrote:
> > > >
> > > > > I am personally not convinced that adding a new config
> > > > > `auto.offset.reset.by.duration` is the best way. Kafka in general
> > has
> > > > > way too many configs and trying to avoid adding more configs seems
> > to be
> > > > > desirable?  -- It seems this might be a point of contention, and if
> > the
> > > > > majority of people wants this new config so be it. I just wanted to
> > > > > stress my concerns about it.
> > > >
> > > >
> > > > I agree that we don't need a new config. We can simply use a value
> for
> > the
> > > > existing config. I think a prefix followed by the relevant ISO8601
> > string
> > > > would be clear enough. For example, "by-duration:P23DT23H" or
> something
> > > > along those lines. I do find the "by-duration" description a bit
> > confusing
> > > > for what we're doing here (i.e. current time - duration) although
> > there is
> > > > precedent in the reset offsets tool.
> > > >
> > > > Ismael
> > > >
> >
>

Reply via email to