Few final thoughts:

1. I agree with Matthias, this config merits HIGH importance
2. Totally makes sense to leave the DSL/StreamsBuilder config stuff for a
separate KIP. Let me know if you want to chat about that idea more if/when
you want to pick that up

Thanks for the KIP!

On Tue, Dec 10, 2024 at 1:11 AM Sebastien Viale <
sebastien.vi...@michelin.com> wrote:

>
> Hello,
>
> I must admit that I never really asked myself the question, and I never
> truly knew what determined the importance level.
> I have of course no problem changing it
>
>
>
>
> ________________________________
> De : Matthias J. Sax <mj...@apache.org>
> Envoyé : vendredi 6 décembre 2024 23:45
> À : 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.
>
> One last minor question:
>
> You propose to add this new config with importance level "LOW". I am
> wondering if this is appropriate?
>
> From my understanding, the rule-of-thumb is, that "low" means, most
> likely not necessary to change, while "high" mean, recommended to change
> for production.
>
> Thus, to me, this new config might qualify as "high" priority config?
> Thoughts?
>
> Overall it's not a big deal, because the "priority value" is not really
> part of public API, and we can change it any time, but I though asking
> can't hurt.
>
>
>
> -Matthias
>
> This email was screened for spam and malicious content but exercise
> caution anyway.
>
>
>
> On 12/5/24 7:20 AM, Lucas Brutschy wrote:
> > Hi,
> >
> > agreeing with Bill here. I'm still not sure, I like `resource` but I
> > won't insist - ready for a vote.
> >
> > Cheers,
> > Lucas
> >
> > On Thu, Dec 5, 2024 at 12:31 AM Bill Bejeck <bbej...@gmail.com> wrote:
> >>
> >> Hi All,
> >>
> >> Thanks for the KIP, Sébastien, this will be a very useful addition.
> >>
> >> I don't have any additional comments at this point, but I'd like to
> >> add a +1 for current naming of
> `ensure.explicit.internal.resource.naming`.
> >> I think it strikes the correct balance among all the suggestions on this
> >> thread.
> >> At this point, I'm thinking this could be ready to put to a vote in the
> >> next day or two.
> >>
> >> Regards,
> >> Bill
> >>
> >> On Wed, Dec 4, 2024 at 3:01 PM Sebastien Viale <
> sebastien.vi...@michelin.com>
> >> wrote:
> >>
> >>> Hi,
> >>>
> >>> BC+1:
> >>> I have updated the KIP with ensure.explicit.internal.resource.naming
> >>> (default: false) as Bruno suggested.
> >>>
> >>>
> >>> BC+2:
> >>> Implementation details have been removed.
> >>>
> >>>
> >>> Regarding the issue with "DSL/StreamsBuilder" configs, I will open a
> >>> separate KIP once this one is definitively accepted or rejected.
> >>>
> >>> Regarding Almog's idea, I believe it is feasible to account for
> existing
> >>> auto-generated topics. However, I also prefer to focus on new
> applications
> >>> or recommend that users reset their streams before enabling the
> >>> configuration.
> >>>
> >>> Thanks for your feedback
> >>>
> >>>
> >>> Cheers
> >>> Sébastien
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> ________________________________
> >>> De : Bruno Cadonna <cado...@apache.org>
> >>> Envoyé : mardi 3 décembre 2024 09:14
> >>> À : dev@kafka.apache.org <dev@kafka.apache.org>
> >>> Objet : [SUSPICIOUS EXTERNAL MESSAGE] Re: [DISCUSS] KIP-1111: Enforcing
> >>> Explicit Naming for Kafka Streams Internal Topics
> >>>
> >>> Warning This might be a fraudulent message! When clicking REPLY, your
> >>> answers will NOT go to the sender (cado...@apache.org). Instead,
> replies
> >>> will be sent to dev@kafka.apache.org. Be cautious!
> >>>
> >>> Hi all,
> >>>
> >>> BC+1:
> >>> Just to be clear, I did not mean state stores and their changelogs with
> >>> "persistence", but every resource a Streams app needs to persists on
> the
> >>> brokers as well as locall to be able to work (e.g., changelog topics
> and
> >>> repartition topics). Since this seems to be confusing, we should use
> >>> some other term to describe those resources. Maybe:
> >>>
> >>> - ensure.invariant.internal.resource.naming
> >>> - ensure.explicit.internal.resource.naming
> >>>
> >>> Regarding "resources" being too generic, I think being generic is good
> >>> in this case, because this config can then be used for all resources
> >>> that are persisted on the brokers (repartition topics and changelog
> >>> topics) as well as locally (state store names) that need to be
> invariant
> >>> to changes to the topology. Maybe there will be more in the future.
> >>>
> >>>
> >>> BC+2:
> >>> I agree with Matthias that we should remove the implementation details
> >>> from the KIP.
> >>>
> >>>
> >>> BC+3:
> >>> Sébastien, you also need to consider the time ordered key value buffers
> >>> used in suppressions and stream-table join with grace periods. Those
> >>> also use changelog topics.
> >>>
> >>>
> >>> Best,
> >>> Bruno
> >>>
> >>> This email was screened for spam and malicious content but exercise
> >>> caution anyway.
> >>>
> >>>
> >>>
> >>> On 03.12.24 03:05, Matthias J. Sax wrote:
> >>>> Hi,
> >>>>
> >>>> I lost track of all proposals for the config name... But from the
> ones I
> >>>> recall, and from what people commented, I would like to propose:
> >>>>
> >>>> - enable.internal.topic.name.generation (default: true)
> >>>>
> >>>> Given that we have repartition and changelog topics, it seem using
> >>>> "topic" in the name is more generic (compared to store). Also,
> changelog
> >>>> topic and store name are coupled, and thus "topic" does cover store
> >>>> names implicitly.
> >>>>
> >>>> I find other term like "resources" too generic and hard to understand
> >>>> personally.
> >>>>
> >>>>
> >>>> About the related question about working on the issue about "DSL/
> >>>> StreamsBuilder" configs, I am happy either way to either include it in
> >>>> this KIP or separate it out. It might be cleaner to have two KIPs, but
> >>>> given that there is natural overlap between both, it can also become
> >>>> confusing... I guess it will be your own decision Sebastian, which way
> >>>> you prefer personally.
> >>>>
> >>>>
> >>>> The other discussion about how to ensure topics name are not auto-
> >>>> generated seems to go pretty much into implementation details... Not
> >>>> sure if we really need to discuss this on the mailing list? I have a
> few
> >>>> of my own ideas about it, but not sure if this is relevant at this
> stage?
> >>>>
> >>>>
> >>>> In the end, if we keep the KIP scope as-is (and don't extend it to
> cover
> >>>> the general DSL/StreamsBuilder config question), we only need to agree
> >>>> on a name for the config? And consider the upgrade path.
> >>>>
> >>>> I am not sure if Almog's idea to pass in custom names to mimic auto-
> >>>> generated ones would actually work? Btw: I am also happy if we say,
> the
> >>>> config can only be enabled for _new_ applications in a safe manner,
> and
> >>>> if people enable it for existing ones, it's their own risk (while it
> >>>> should be safe to enable for topologies for which everything is
> explicit
> >>>> named already).
> >>>>
> >>>>
> >>>> -Matthias
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 12/2/24 3:25 AM, Sebastien Viale wrote:
> >>>>> A1 / BC+1
> >>>>> What do you think of these options for taking internal topics and
> >>>>> state store names into consideration?
> >>>>>
> >>>>> * ensure.explicit.internal.names
> >>>>> * ensure.explicit.resource.names
> >>>>> * ensure.consistent.resource.naming
> >>>>> * ensure.invariant.persistence.naming
> >>>>>
> >>>>> BC+2
> >>>>> To not rely only on a pattern, this is what can be done:
> >>>>>
> >>>>> - For repartition topics, they are all created in the
> >>>>> KStreamImpl.createRepartitionedSource(...) static method.
> >>>>> The method either receives a name explicitly provided by the user or
> >>>>> null and builds the final repartition topic name.
> >>>>> Here, I can easily determine if a name has been provided.
> >>>>> - For changelog topics and state store names, I identified two
> >>>>> situations where they are created:
> >>>>>
> >>>>> 1. In the MaterializedInternal constructor, which receives a
> >>>>> Materialized object with a name or not.
> >>>>> 2. When a KStream/KStream join is made. In this case, stores are
> >>>>> not built using Materialized but are instead created in the
> >>>>> KStreamImplJoin.join() method.
> >>>>>
> >>>>> In all cases, I can access the InternalTopologyBuilder from the
> >>>>> InternalStreamBuilder object and add the unprovided topics or store
> >>>>> names to a list property:
> >>>>> List<String> UnprovidedInternalNames.
> >>>>> I will then be able to check the content of this list to enforce the
> >>>>> explicit naming requirement if needed.
> >>>>> Thanks for your feedback.
> >>>>>
> >>>>> regards,
> >>>>> Sébastien
> >>>>>
> >>>>> ________________________________
> >>>>> De : Lucas Brutschy <lbruts...@confluent.io.INVALID>
> >>>>> Envoyé : jeudi 28 novembre 2024 11:51
> >>>>> À : dev@kafka.apache.org <dev@kafka.apache.org>
> >>>>> Objet : [SUSPICIOUS EXTERNAL MESSAGE] Re: [DISCUSS] KIP-1111:
> >>>>> Enforcing Explicit Naming for Kafka Streams Internal Topics
> >>>>>
> >>>>> Warning This might be a fraudulent message! When clicking REPLY, your
> >>>>> answers will NOT go to the sender (lbruts...@confluent.io.invalid).
> >>>>> Instead, replies will be sent to dev@kafka.apache.org. Be cautious!
> >>>>>
> >>>>> 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
> >>>>>
> >>>>> This email was screened for spam and malicious content but exercise
> >>>>> caution anyway.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> 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/<https://lists.apache.org/thread
> ><https://lists.apache.org/thread<https://lists.apache.org/thread>>
> >>>>>>>>> dfgd2vcco7d1omjptfqp92kdocnlf3cq<
> https://lists.apache.org/thread/<https://lists.apache.org/thread/><
> >>> https://lists.apache.org/thread/<https://lists.apache.org/thread/>>
> >>>>>>>>> dfgd2vcco7d1omjptfqp92kdocnlf3cq><
> https://lists.apache.org/thread/<https://lists.apache.org/thread/><
> >>> https://lists.apache.org/thread/<https://lists.apache.org/thread/>>
> >>>>>>>>> dfgd2vcco7d1omjptfqp92kdocnlf3cq<
> https://lists.apache.org/thread/<https://lists.apache.org/thread/><
> >>> https://lists.apache.org/thread/<https://lists.apache.org/thread/>>
> >>>>>>>>> dfgd2vcco7d1omjptfqp92kdocnlf3cq>><https://lists.apache.org/<
> https://lists.apache.org><
> >>> https://lists.apache.org<https://lists.apache.org>>
> >>>>>>>>> thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq<
> https://lists.apache.org/<https://lists.apache.org/><
> >>> https://lists.apache.org/<https://lists.apache.org/>>
> >>>>>>>>> thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq><
> https://lists.apache.org/<https://lists.apache.org/><
> >>> https://lists.apache.org/<https://lists.apache.org/>>
> >>>>>>>>> thread/dfgd2vcco7d1omjptfqp92kdocnlf3cq<
> https://lists.apache.org/<https://lists.apache.org/><
> >>> https://lists.apache.org/<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/<
> https://cwiki.apache.org/confluence/display/KAFKA><
> >>> https://cwiki.apache.org/confluence/display/KAFKA<
> 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
> <
> 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
> <
> 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
> <
> 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/<
> https://cwiki.apache.org/confluence/display/KAFKA/><
> >>> https://cwiki.apache.org/confluence/display/KAFKA/<
> 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
> <
> 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
> <
> 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
> <
> 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