Hi all,

Thanks for the KIP! Super useful.

No new comments, let me just voice my opinion on the suggestions being made.

A1: When I read `require.auto.generated.topic.names`, it sounds like
explicit naming is not allowed if the config is true. This is not what
we are doing here. So to avoid the negative, I'd use
`require.explicit.topic.names`, default false.

BC+1: I think `invariant` is quite indirect, because it depends on
what changes are being made for the naming to change or not. Also,
it's not only about changelog topics but also repartition topics, so
`persistance` seems misleading as well. I agree, IQ can benefit, but
it seems that it is more of a side effect of the feature?

BC+2: Big +1 on this.

Cheers,
Lucas




On Tue, Nov 26, 2024 at 9:37 PM Sebastien Viale
<sebastien.vi...@michelin.com> wrote:
>
> Thanks Bruno for your comments:
>
> A1 .
> BC+1.
> I let other people give their advice, and each of them makes sense.
>
> BC+2.
> I believe you're right. I think I can manage to check whether names are set 
> for repartition or changelog topics across different DSL operators in 
> KStreamImpl. The complexity arises because repartition topic names can depend 
> on the operator, such as selectKey before a join.
> If I detect unnamed topics, I could introduce a property like 
> unNamedInternalTopics in  InternalStreamBuilder to maintain a list of unnamed 
> topics that I can check when topology is built. This approach would allow me 
> to focus not only on sequence numbers but also on ensuring explicit topic 
> naming for improved stability. I hope this is what you imagine.
> Let me know if you need further refinements!
>
> Sébastien,
>
>
>
> ________________________________
> De : Bruno Cadonna <cado...@apache.org>
> Envoyé : mardi 26 novembre 2024 19:12
> À : dev@kafka.apache.org <dev@kafka.apache.org>
> Objet : [EXT] Re: [DISCUSS] KIP-1111: Enforcing Explicit Naming for Kafka 
> Streams Internal Topics
>
> Warning External sender Do not click on any links or open any attachments 
> unless you trust the sender and know the content is safe.
>
> Hi,
>
> Thanks for the KIP!
>
> A1.
> I find the "auto.generated.topic.names" part a bit misleading, because
> actually the topic names are always auto-generated no matter if the
> processors and state stores are explicitly named or not.
>
> which leads me to
>
> BC+1.
> IMO this is not only about topic names, explicitly naming state stores
> would also benefit existing IQ queries. So the config should not
> necessarily be only focused on internal topics.
> Maybe a config name like invariant.persistence.naming or
> ensure.invariant.persistence.naming or
> enabled.invariant.persistence.naming. I am not too happy with the names
> but I hope you get the idea.
>
> BC+2.
> Can we not keep track of explicit naming within the DSL instead of
> relying on the 10-digit sequence number?
>
> Best,
> Bruno
>
> This email was screened for spam and malicious content but exercise caution 
> anyway.
>
>
>
> On 22.11.24 22:04, Sebastien Viale wrote:
> > hi,
> > A1. Personally, I prefer the suggestion: require.auto.generated.topic.names.
> > If everyone agrees, I will update the KIP accordingly.
> > MJS-1. Sophie, I reviewed the ticket and the sub-tasks, and everything 
> > seems clear to me. I must say that I sometimes felt confused with the 
> > constructors, but now everything is much clearer. Based on my experience 
> > and discussions with my teammates, I believe this is a good opportunity to 
> > simplify and clarify the implementation.
> > The question is whether this should be part of a separate KIP.
> > I don’t see any issue with integrating it into the current one, but if 
> > necessary, I’m happy to volunteer to open a new KIP.
> > In both cases, would it be okay for you if I validate it with you before 
> > publishing?
> > cheers !
> >
> >
> >
> > ________________________________
> > De : Sophie Blee-Goldman <sop...@responsive.dev>
> > Envoyé : vendredi 22 novembre 2024 01:33
> > À : dev@kafka.apache.org <dev@kafka.apache.org>
> > Objet : [EXT] Re: [DISCUSS] KIP-1111: Enforcing Explicit Naming for Kafka 
> > Streams Internal Topics
> >
> > Warning External sender Do not click on any links or open any attachments 
> > unless you trust the sender and know the content is safe.
> >
> > First off, thanks for the KIP! I think this is a great idea as it's super
> > easy to miss naming one thing and end up with a topology that isn't
> > upgradeable.
> >
> > A1. I actually had the same reaction as Almog to the name, I feel it's
> > slightly clearer as a positive instead of a negative, though I think the
> > rest of it is fine -- what about "require.auto.generated.topic.names"
> > instead?
> >
> > MJS-1. While I can see the advantage of having this stuff be
> > programmatically configured, I personally would prefer to keep this and
> > other topology-related configurations part of StreamsConfig. For one thing,
> > I think they would be much more discoverable as true configs. For another,
> > this still wouldn't solve the problem for configs that need to be passed in
> > up front, that is, to the Topology/StreamsBuilder constructor rather than
> > to StreamsBuilder#build. And imo whatever we do should work for all such
> > configs that are required for building a topology.
> >
> > Sebastien -- have you read through that ticket and its subtasks yet? I'd be
> > interested in your take on what I'm proposing there, as I think it could be
> > mutually beneficial. For context, I'm currently implementing a KIP that
> > introduces another such config in this category which needs to be passed
> > into the topology.
> >
> > This email was screened for spam and malicious content but exercise caution 
> > anyway.
> >
> >
> >
> > On Thu, Nov 21, 2024 at 12:42 PM Matthias J. Sax <mj...@apache.org> wrote:
> >
> >> Yes, the ticket is related. Also just saw it today.
> >>
> >> Did leave a comment on the ticket for Sophie to hopefully chime in on
> >> this KIP discussion.
> >>
> >>
> >> -Matthias
> >>
> >> On 11/21/24 9:06 AM, Sebastien Viale wrote:
> >>> Thank you very much for your reviews!
> >>>
> >>> A1 I will keep the disallow.auto.generated.topic.names configuration in
> >> the KIP for now while waiting for other suggestions.
> >>>
> >>> A2 I thought about making the implementation typesafe; it would, of
> >> course, complicate the implementation, but for me,
> >>> this feature is intended for new Kafka Streams applications or those
> >> after a reset. I agree with Matthias.
> >>> If a user wants to enable the check, they will simply need to avoid
> >> naming topics like the auto-generated ones.
> >>>
> >>> MJS-1 It might be a good idea to add your proposal to the KIP. I just
> >> wonder how to distinguish configurations that must be set
> >> 'programmatically' from others (e.g., topology optimization and this one)
> >>> I am open to any suggestions.
> >>>
> >>> Is this ticket related to what you are proposing
> >>> https://lists.apache.org/thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq<https://lists.apache.org/thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq><https://lists.apache.org/thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq<https://lists.apache.org/thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq>>
> >>>
> >>>
> >>> cheers,
> >>> Sébastien
> >>>
> >>>
> >>>
> >>> ________________________________
> >>> De : Matthias J. Sax <mj...@apache.org>
> >>> Envoyé : jeudi 21 novembre 2024 02:48
> >>> À : dev@kafka.apache.org <dev@kafka.apache.org>
> >>> Objet : [EXT] Re: [DISCUSS] KIP-1111: Enforcing Explicit Naming for
> >> Kafka Streams Internal Topics
> >>>
> >>> Warning External sender Do not click on any links or open any
> >> attachments unless you trust the sender and know the content is safe.
> >>>
> >>> Thanks for the KIP. Overall this does sound useful.
> >>>
> >>> About Almog's comments
> >>>
> >>> (A1) -- I don't think that `topics.internal.require.explicit.naming`
> >>> would be a good name, as we use `topic.` prefix for actual topic
> >>> configs. Thus, KS would pickup `internal.require.explicit.naming` and
> >>> try to apply is as topic config what would either crash or log a
> >>> spurious WARN what would be annoying?
> >>>
> >>> (A2) -- We would need to check the code if such a strategy would work as
> >>> expected? If users pass in a name for a previously un-named topic, we
> >>> might get an cascading index shift which might be undesired (and could
> >>> "break" processor level metrics)?
> >>>
> >>> But I am also not sure if we actually need a migration path? If might be
> >>> ok if this new feature only work for new deployments? (Or use can re-set
> >>> their application.)
> >>>
> >>>
> >>> MJS-1: I have another question though about the risk such a config
> >>> implies? Given that configs are often managed from "outside", one could
> >>> easily break an exiting application which does not have this config
> >>> enable, by enable the config. Of course, we already have similar config
> >>> which are equally dangerous; however, most people don't like that one
> >>> need to pass in the config into `StreamsBuilder.build(configs)` method
> >>> anyway, so maybe we could make a first step to get rid of this via this
> >> KIP?
> >>>
> >>> Thus, I am wondering if a config is actually the right way to go? Should
> >>> we instead make it feature of `StreamsBuilder` that one can enable
> >>> programmatically? Not 100% how we would do this, but maybe we could use
> >>> a builder pattern (to allow us to add similar thing in the future), and
> >>> deprecate the current constructor of `StreamsBuilder`?
> >>>
> >>> // new way to build a `StreamsBuilder`
> >>> StreamsBuilder builder = StreamsBuilder.build();
> >>>
> >>> // if we don't extend the scope of this KIP, we might also need:
> >>> StreamsBuilder builder = StreamsBuilder.build(Properties);
> >>>
> >>> Or we do extend this KIP and deprecate existing config (like topology
> >>> optimization) if favor of the new builder pattern:
> >>>
> >>>
> >>> // enable the new feature
> >>> StreamsBuilder builder = StreamsBuilder.requireExplicitNaming().build();
> >>>
> >>> // or
> >>> StreamsBuilder builder = StreamsBuilder.disableNameGeneration().build();
> >>>
> >>>
> >>> Thoughts? I am not 100% sure if this is a good idea or not, but thought
> >>> it cannot hurt to throw it out.
> >>>
> >>>
> >>> -Matthias
> >>>
> >>> This email was screened for spam and malicious content but exercise
> >> caution anyway.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On 11/18/24 12:57 PM, Almog Gavra wrote:
> >>>> Hi Sebastien,
> >>>>
> >>>> Thanks for the KIP! In general, I'm a fan of giving users the tools they
> >>>> need to protect their organization so I'm supportive of this proposal. A
> >>>> few nits and comments:
> >>>>
> >>>> A1. [nit] consider 'topics.internal.require.explicit.naming' so that
> >> (a) we
> >>>> can group anything else we introduce for "topics.internal" with the same
> >>>> prefix and (b) it's not a double negative (don't disallow is the
> >> default,
> >>>> instead of don't require).
> >>>> A2. I think we can improve on the implementation by making it typesafe
> >>>> instead of checking whether the topic matches some pattern. I think a
> >>>> migration path for users that want to turn this flag on, but already
> >> have
> >>>> some auto-generated names, is to manually specify the auto-generated
> >> names
> >>>> for preexisting topics. This would enforce future topics naming, but not
> >>>> penalize them for having used auto generated names in the past. This
> >> makes
> >>>> the implementation a little more challenging, but I think it's
> >> worthwhile.
> >>>>
> >>>> Cheers,
> >>>> Almog
> >>>>
> >>>> On Fri, Nov 15, 2024 at 12:20 AM Sebastien Viale <
> >>>> sebastien.vi...@michelin.com> wrote:
> >>>>
> >>>>> Hi Everyone,
> >>>>>
> >>>>> I would like to start a discussion on KIP-1111: Enforcing Explicit
> >> Naming
> >>>>> for Kafka Streams Internal Topics<
> >>>>>
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics<https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics><https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics<https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics>>
> >> <
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics<https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics><https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics<https://cwiki.apache.org/confluence/display/KAFKA/KIP-1111%3A+Enforcing+Explicit+Naming+for+Kafka+Streams+Internal+Topics>>
> >>>
> >>>>>>
> >>>>> This proposal aims to add a configuration that prevents a Kafka Streams
> >>>>> application from starting if any of its internal topics have
> >> auto-generated
> >>>>> names.
> >>>>> Regards,
> >>>>>
> >>>>> Sébastien
> >>>>>
> >>>>
> >>

Reply via email to