Thanks for bringing up KIP-464 Jose and apologies for taking that long to
respond.

It made sense to allow the users to use the broker defaults for the
replication factor and the number of partitions when their source
connectors create topics and the implementation has incorporated this
ability.
I've now updated KIP-158 to reflect this feature in the doc. Given that
this is a minor and useful amendment I think we don't have to vote again on
this change but please let me know if you think otherwise.

Best,
Konstantine

On Mon, Feb 3, 2020 at 3:17 PM Jose Garcia Sancio <jsan...@confluent.io>
wrote:

> Thanks Konstantine. Looking forward to this feature.
>
> The KIP mentions:
>
> > For the *default* group this configuration is required. For any other
> group defined in topic.creation.groups this config is optional and if it's
> missing it gets the value the *default* group
>
> For the properties "topic.creation.$alias.replication.factor" and
> "topic.creation.$alias.partitions". I think that we can and should make
> this optional for all groups including the "default" group. Kafka's
> CreateTopicRequest message allows these two fields to be optional. Here are
> their descriptions respectively:
>
> > The number of replicas to create for each partition in the topic, or -1
> if we are either specifying a manual partition assignment or using the
> default repli
> cation factor.
> > The number of partitions to create in the topic, or -1 if we are either
> specifying a manual partition assignment or using the default partitions.
>
> At the Java Client level this is model using Java's Optional type. I think
> that we can make them both optional and resolve them to "Optional.empty()"
> if neither the specific group or "default" is set.
>
> Thanks,
> Jose
>
>
> On Thu, Dec 19, 2019 at 8:27 PM Tom Bentley <tbent...@redhat.com> wrote:
>
> > Thanks Konstantine, lgtm.
> >
> > On Thu, Dec 19, 2019 at 5:34 PM Ryanne Dolan <ryannedo...@gmail.com>
> > wrote:
> >
> > > Thanks for the reply Konstantine. Makes sense.
> > >
> > > Ryanne
> > >
> > > On Tue, Dec 17, 2019, 6:41 PM Konstantine Karantasis <
> > > konstant...@confluent.io> wrote:
> > >
> > > > Thanks Randall and Ryanne for your comments.
> > > >
> > > > I'm replying to them below, in order of appearance:
> > > >
> > > > To Randall's comments:
> > > > 1) I assumed these properties would be visible to connectors, since
> by
> > > > definition these are connector properties. I added a mention. However
> > I'm
> > > > not sure if you are also making a specific suggestion with this
> > > question. I
> > > > didn't find a similar mention in KIP-458, but 'override' directives
> > also
> > > > appear in both the connector and the task properties. Given this
> > > precedent,
> > > > I think it makes sense to forward these properties to the connector
> as
> > > > well.
> > > >
> > > > 2) Doesn't hurt to add a note in the KIP. Added in the table. This
> > > > definitely belongs to the Kafka Connect docs that will describe how
> to
> > > > operate Connect with this feature enabled.
> > > >
> > > > 3) Added a note to mention that a task might fail during runtime and
> > that
> > > > early validation won't be in place for this feature.
> > > >
> > > > 4) Examples added and the sentence regarding ACLs and failure was
> > > adjusted
> > > > to reflect the new proposal.
> > > >
> > > > 5) Also addressed and the KIP now mentions that the task will fail if
> > the
> > > > feature is enabled and the broker does not support the Admin API.
> > > >
> > > > To your point Ryanne, I'm also often in favor of reserving some room
> > for
> > > > customizations that will be able to address specific user needs, but
> I
> > > > don't think we have a strong case for making this functionality
> > pluggable
> > > > at the moment. Topics are not very transient entities in Kafka. And
> > this
> > > > feature is focusing specifically on topic creation and does not
> suggest
> > > > altering configuration of existing topics, including topics that may
> be
> > > > created once by a connector that will use this new functionality.
> > > > Therefore, adapting to changes to the attainable replication factor
> > > during
> > > > runtime, without expressing this in the configuration of a connector
> > > seems
> > > > to involve more risks than benefits. Overall, a generic topic
> creation
> > > hook
> > > > shares similarities to exposing an admin client to the connector
> itself
> > > and
> > > > based on previous discussions, seems that this approach will result
> in
> > > > considerable extensions in both configuration and implementation
> > without
> > > it
> > > > being fully justified at the moment.
> > > >
> > > > I suggest moving forward without pluggable classes for now, and if in
> > the
> > > > future we wish to return to this topic for second iteration, then
> > > factoring
> > > > out the proposed functionality under the configuration of a module
> that
> > > > applies topic creation based on regular expressions should be easy to
> > do
> > > in
> > > > a compatible way.
> > > >
> > > > Best,
> > > > Konstantine
> > > >
> > > >
> > > > On Thu, Dec 12, 2019 at 1:37 PM Ryanne Dolan <ryannedo...@gmail.com>
> > > > wrote:
> > > >
> > > > > Konstantine, thanks for the updates. I wonder if we should take
> your
> > > > > proposal one step further and make this pluggable. Your
> > include/exclude
> > > > > regexes are great out-of-the-box features, but it may be valuable
> to
> > > > > plug-in more sophisticated logic to handle topic creation.
> > > > >
> > > > > Instead of enabling/disabling the feature as a whole, the default
> > > > > TopicCreator (or whatever) could be a nop. Then we include a
> > > > > RegexTopicCreator with your proposed behavior. This would be almost
> > > > > indistinguishable from your current KIP from a user's perspective,
> > but
> > > > > would enable plug-in TopicCreators that do some of the things you
> > have
> > > > > listed in the Rejected Alternatives, e.g. to automatically adjust
> the
> > > > > replication factor based on the number of nodes, etc.
> > > > >
> > > > > My team leverages Connect's plug-ins in other places to enable
> > seamless
> > > > > integration with the rest of our platform. We would definitely use
> a
> > > > topic
> > > > > creation hook if one existed. In particular, we have a concept of
> > > "topic
> > > > > profiles" that we could use here.
> > > > >
> > > > > Ryanne
> > > > >
> > > > > On Thu, Dec 12, 2019 at 2:00 PM Konstantine Karantasis <
> > > > > konstant...@confluent.io> wrote:
> > > > >
> > > > > > I've taken a second look to KIP-158 after syncing with Randall
> > Hauch,
> > > > who
> > > > > > was the original author of the proposal, and I have updated the
> KIP
> > > in
> > > > > > place.
> > > > > >
> > > > > > The main new features of this updated KIP-158 is the introduction
> > of
> > > > > groups
> > > > > > of configs that can be composed and the ability to match topics
> to
> > > > these
> > > > > > groups via the use of regex. The design builds on top of the
> > existing
> > > > > > definition of config groups used in single message
> transformations
> > > > (SMT)
> > > > > > and therefore I'm hoping that the approach fits well in Kafka
> > > Connect's
> > > > > > current configuration capabilities.
> > > > > >
> > > > > > The new proposal aims to strike a good balance between requiring
> to
> > > > > > explicitly set the configs for each possible topic or having a
> > > > > > one-size-fits-all default set of properties for all the topics a
> > > > > connector
> > > > > > may create during runtime.
> > > > > >
> > > > > >
> > > > > > The updated KIP-158 can be found under the same page as the old
> > one:
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-158%3A+Kafka+Connect+should+allow+source+connectors+to+set+topic-specific+settings+for+new+topics
> > > > > >
> > > > > > I've intentionally changed the title here in this thread to avoid
> > > > > confusion
> > > > > > with the threads that discussed KIP-158 previously.
> > > > > > Looking forward to your comments and hoping we can pick up this
> > work
> > > > from
> > > > > > the very good starting point that was reached in the previous
> > > > > discussions.
> > > > > >
> > > > > >
> > > > > > Best,
> > > > > > Konstantine
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
> --
> -Jose
>

Reply via email to