I definitely agree with you on deprecating topics().

I also think changing the method names for consistency is reasonable, since
there is no functionality change. Although, I can be convinced either way
on this one.

Best,
Nishanth Pradeep
On Fri, Jul 20, 2018 at 12:15 PM Matthias J. Sax <matth...@confluent.io>
wrote:

> I would still deprecate existing `topics()` method. If users need a
> String, they can call `topicSet().toString()`.
>
> It's just a personal preference, because I believe it's good to keep the
> API "minimal".
>
> About renaming the other methods: I thinks it's a very small burden to
> deprecate the existing methods and add them with new names. Also just my
> 2 cents.
>
> Would be good to see what others think.
>
>
> -Matthias
>
> On 7/19/18 6:20 PM, Nishanth Pradeep wrote:
> > Understood, Guozhang.
> >
> > Thanks for the help, everyone! I have updated the KIP. Let me know if you
> > any other thoughts or suggestions.
> >
> > Best,
> > Nishanth Pradeep
> >
> > On Thu, Jul 19, 2018 at 7:33 PM Guozhang Wang <wangg...@gmail.com>
> wrote:
> >
> >> I see.
> >>
> >> Well, I think if we add a new function like topicSet() it is less
> needed to
> >> deprecate topics() as it returns "{topic1, topic2, ..}" which is sort of
> >> non-overlapping in usage with the new API.
> >>
> >>
> >> Guozhang
> >>
> >> On Thu, Jul 19, 2018 at 5:31 PM, Nishanth Pradeep <
> nishanth...@gmail.com>
> >> wrote:
> >>
> >>> That is what I meant. I will add topicSet() instead of changing the
> >>> signature of topics() for compatibility reasons. But should we not add
> a
> >>> @deprecated flag for topics() or do you want to keep it around for the
> >> long
> >>> run?
> >>>
> >>> On Thu, Jul 19, 2018 at 7:27 PM Guozhang Wang <wangg...@gmail.com>
> >> wrote:
> >>>
> >>>> We cannot change the signature of the function named "topics" from
> >>> "String"
> >>>> to "Set<String>", as Matthias mentioned it is a compatibility breaking
> >>>> change.
> >>>>
> >>>> That's why I was proposing add a new function like "Set<String>
> >>>> topicSet()", while keeping "String topics()" as is.
> >>>>
> >>>> Guozhang
> >>>>
> >>>> On Thu, Jul 19, 2018 at 5:22 PM, Nishanth Pradeep <
> >> nishanth...@gmail.com
> >>>>
> >>>> wrote:
> >>>>
> >>>>> Right, adding topicNames() instead of changing the return type of
> >>>> topics()
> >>>>> in order preserve backwards compatibility is a good idea. But is it
> >> not
> >>>>> better to depreciate topics() because it would be redundant? In our
> >>> case,
> >>>>> it would only be calling topicNames/topicSet#toString().
> >>>>>
> >>>>> I still agree that perhaps changing the other API's might be
> >>> unnecessary
> >>>>> since it's only a name change.
> >>>>>
> >>>>> I have made the change to the KIP to only add, not change,
> >> preexisting
> >>>>> APIs. But where do we stand on deprecating topics()?
> >>>>>
> >>>>> Best,
> >>>>> Nishanth Pradeep
> >>>>>
> >>>>> On Thu, Jul 19, 2018 at 1:44 PM Guozhang Wang <wangg...@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>>> Personally I'd prefer to keep the deprecation-related changes as
> >>> small
> >>>> as
> >>>>>> possible unless they are really necessary, and hence I'd prefer to
> >>> just
> >>>>> add
> >>>>>>
> >>>>>> List<String> topicList()  /* or Set<String> topicSet() */
> >>>>>>
> >>>>>> in addition to topicPattern to Source, in addition to
> >>>>> `topicNameExtractor`
> >>>>>> to Sink, and leaving the current APIs as-is.
> >>>>>>
> >>>>>> Guozhang
> >>>>>>
> >>>>>> On Thu, Jul 19, 2018 at 10:36 AM, Matthias J. Sax <
> >>>> matth...@confluent.io
> >>>>>>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Thanks for updating the KIP.
> >>>>>>>
> >>>>>>> The current `Source` interface has a method `String topics()`
> >> atm.
> >>>>> Thus,
> >>>>>>> we cannot just add `Set<String> Source#topics()` because this
> >> would
> >>>>>>> replace the existing method and would be an incompatible change.
> >>>>>>>
> >>>>>>> I think, we should deprecate `String topics()` and add a method
> >>> with
> >>>>>>> different name:
> >>>>>>>
> >>>>>>> `Set<String> Source#topicNames()`
> >>>>>>>
> >>>>>>> The method name `topicNames` is more appropriate anyway, as we
> >>>> return a
> >>>>>>> set of String (ie, names) but no `Topic` objects. This raises one
> >>>> more
> >>>>>>> thought: we might want to rename `Processor#stores()` to
> >>>>>>> `Processor#storeNames()` as well ass `Sink#topic()` to
> >>>>>>> `Sink#topicName()`, too. This would keep the naming in the API
> >>>>>> consistent.
> >>>>>>>
> >>>>>>>
> >>>>>>> WDYT? Hope that other can chime in as well.
> >>>>>>>
> >>>>>>>
> >>>>>>> -Matthias
> >>>>>>>
> >>>>>>> On 7/18/18 7:49 PM, Nishanth Pradeep wrote:
> >>>>>>>> I have revised the KIP
> >>>>>>>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> >>>>> 321%3A+Update+
> >>>>>>> TopologyDescription+to+better+represent+Source+and+Sink+Nodes>.
> >>>>>>>> Here is a summary of the changes.
> >>>>>>>>
> >>>>>>>>    1. Changed return type from String to Set<String> for
> >>>>>> Source#topics().
> >>>>>>>>
> >>>>>>>>    Set<String> Source#topics()
> >>>>>>>>
> >>>>>>>>    2. Added method in TopologyDescription#Source to return the
> >>>>> Pattern
> >>>>>>> used
> >>>>>>>>    by the Source node.
> >>>>>>>>
> >>>>>>>>    Pattern Source#topicPattern()
> >>>>>>>>
> >>>>>>>>    3. Changed return type of Sink#topicNameExtractor from
> >> Class<?
> >>>>>> extends
> >>>>>>>>    TopicNameExtractor> to just TopicNameExtractor.
> >>>>>>>>
> >>>>>>>>    TopicNameExtractor Sink#topicNameExtractor()
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Nishanth Pradeep
> >>>>>>>>
> >>>>>>>> On Sun, Jul 15, 2018 at 11:24 PM Guozhang Wang <
> >>> wangg...@gmail.com
> >>>>>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Hi Nishanth,
> >>>>>>>>>
> >>>>>>>>> Since even combining these two the scope is still relatively
> >>> small
> >>>>> I'd
> >>>>>>>>> suggest just do it in one KIP if you're willing to work on
> >> them.
> >>>> If
> >>>>>> you
> >>>>>>> do
> >>>>>>>>> not then pleas feel free to create the JIRA for the second
> >> step
> >>> so
> >>>>>> that
> >>>>>>>>> others can pick it up.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Guozhang
> >>>>>>>>>
> >>>>>>>>> On Sun, Jul 15, 2018 at 6:14 PM, Matthias J. Sax <
> >>>>>> matth...@confluent.io
> >>>>>>>>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> There is no general protocol. We can include the changes in
> >> the
> >>>>>> current
> >>>>>>>>>> KIP or do a second KIP.
> >>>>>>>>>>
> >>>>>>>>>> If you don't want to include the change in this KIP, please
> >>>> create
> >>>>> a
> >>>>>>> new
> >>>>>>>>>> JIRA to track the other changes. You can assign the JIRA to
> >>>>> yourself
> >>>>>>> and
> >>>>>>>>>> start a second KIP if you want. You can also "link" both
> >> JIRAs
> >>> as
> >>>>>>>>>> related to each other.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> -Matthias
> >>>>>>>>>>
> >>>>>>>>>> On 7/15/18 12:50 PM, Nishanth Pradeep wrote:
> >>>>>>>>>>> Thank you for the comments! I agree with these changes.
> >>>>>>>>>>>
> >>>>>>>>>>> So is the general protocol to update the same KIP, or is to
> >>>> scrap
> >>>>>> the
> >>>>>>>>>>> current KIP and create a new one since it's beyond the scope
> >>> of
> >>>>> the
> >>>>>>>>>>> original KIP? I am happy to do either.
> >>>>>>>>>>>
> >>>>>>>>>>> On Wed, Jul 4, 2018 at 1:48 PM Matthias J. Sax <
> >>>>>> matth...@confluent.io
> >>>>>>>>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Sounds good to me.
> >>>>>>>>>>>>
> >>>>>>>>>>>> -Matthias
> >>>>>>>>>>>>
> >>>>>>>>>>>> On 7/4/18 10:53 AM, Guozhang Wang wrote:
> >>>>>>>>>>>>> After looked through the current TopologyDescription I
> >> think
> >>>> I'd
> >>>>>>> want
> >>>>>>>>>> to
> >>>>>>>>>>>>> combine the suggestions from John and Matthias on the API
> >>>>>> proposal.
> >>>>>>>>> The
> >>>>>>>>>>>>> motivations is that we have two relatively different
> >>>>>> functionalities
> >>>>>>>>>>>>> provided from the APIs today:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> 1. Each interface's public functions, like
> >>>>>>>>>>>>> SourceNode#topics(), GlobalStore#source(), which returns
> >>>>>> non-String
> >>>>>>>>>> typed
> >>>>>>>>>>>>> data. The hope was to let users programmatically leverage
> >> on
> >>>>> those
> >>>>>>>>> APIs
> >>>>>>>>>>>> for
> >>>>>>>>>>>>> runtime checking.
> >>>>>>>>>>>>> 2. Each interface's impl class also have an implicit
> >>>> toString()
> >>>>>>>>>>>> overridden
> >>>>>>>>>>>>> to print the necessary information. This was designed for
> >>>>>> debugging
> >>>>>>>>>>>>> purposes only during development cycles.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> What we've observed so far, though, is that users leverage
> >>> 2)
> >>>>> much
> >>>>>>>>> more
> >>>>>>>>>>>>> than 1) in practice, since it is more convienent to parse
> >>>>> strings
> >>>>>>>>> than
> >>>>>>>>>>>>> recursively calling the APIs to get non-string fields. On
> >>> the
> >>>>>> other
> >>>>>>>>>> hand,
> >>>>>>>>>>>>> the discussion controversy is more around 1), not 2). As
> >> for
> >>>> 2)
> >>>>>>>>> people
> >>>>>>>>>>>> seem
> >>>>>>>>>>>>> to be on the right page anyways: print the topic lists if
> >> it
> >>>> is
> >>>>>> not
> >>>>>>>>>>>>> dynamic, or print extractor string format otherwise. For
> >> 1)
> >>>>> above
> >>>>>> we
> >>>>>>>>>>>> should
> >>>>>>>>>>>>> probably have all three `Set<String> topics()`, `Pattern
> >>>>>>>>>> topicPattern()`
> >>>>>>>>>>>>> and `TopicNameExtractor topicExtractor()`; while for 2) I
> >>> feel
> >>>>>>>>>>>> comfortable
> >>>>>>>>>>>>> relying on the TopicNameExtractor#toString() in
> >>>>>> `Source#toString()`
> >>>>>>>>>> impl
> >>>>>>>>>>>>> since even if users do not override this function, the
> >>> default
> >>>>>> value
> >>>>>>>>>>>>> `className@hashcode` still looks fine to me.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Guozhang
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On Tue, Jul 3, 2018 at 11:22 PM, Matthias J. Sax <
> >>>>>>>>>> matth...@confluent.io>
> >>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> I just double checked the discussion thread of KIP-120
> >> that
> >>>>>>>>> introduced
> >>>>>>>>>>>>>> `TopologyDescription`. Back than the argument was, that
> >>> using
> >>>>> the
> >>>>>>>>>>>>>> simplest option might be sufficient because the
> >> description
> >>>> is
> >>>>>>>>> mostly
> >>>>>>>>>>>>>> used for debugging.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Not sure if this argument holds. It seem that people
> >> built
> >>>>> first
> >>>>>>>>> more
> >>>>>>>>>>>>>> sophisticated tools using TopologyDescription.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Final note: if we really want to add `topicPattern()` we
> >>>> might
> >>>>>> want
> >>>>>>>>> to
> >>>>>>>>>>>>>> deprecate `topic()` and replace with `Set<String>
> >>> topics()`,
> >>>>>>>>> because a
> >>>>>>>>>>>>>> source node can take a multiple topics, too.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Just adding this for completeness of context to the
> >>>> discussion.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> -Matthias
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 7/3/18 11:09 PM, Matthias J. Sax wrote:
> >>>>>>>>>>>>>>> John,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I am a little bit on the fence. In retrospective, it
> >> might
> >>>>> have
> >>>>>>>>> been
> >>>>>>>>>>>>>>> better to add `topic()` and `topicPattern()` to source
> >>> node
> >>>>> and
> >>>>>>>>>> return
> >>>>>>>>>>>> a
> >>>>>>>>>>>>>>> proper `Pattern` object instead of the pattern as a
> >>> String.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> All other "payload" is just names and thus String
> >>> naturally.
> >>>>>> From
> >>>>>>>>> my
> >>>>>>>>>>>>>>> point of view `TopologyDescription` should represent the
> >>>>>>> `Topology`
> >>>>>>>>>> in
> >>>>>>>>>>>> a
> >>>>>>>>>>>>>>> "machine readable" form plus a default "human readable"
> >>> from
> >>>>> via
> >>>>>>>>>>>>>>> `toString()` -- this does not imply that all return
> >> types
> >>>>> should
> >>>>>>> be
> >>>>>>>>>>>>>> String.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Let me know what you think. If you agree, we could even
> >>> add
> >>>>>>>>>>>>>>> `Source#topicPattern()` in another KIP.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> -Matthias
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On 6/26/18 3:45 PM, John Roesler wrote:
> >>>>>>>>>>>>>>>> Sorry for the late comment,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Looking at the other pieces of TopologyDescription, I
> >>>> noticed
> >>>>>>> that
> >>>>>>>>>>>>>> pretty
> >>>>>>>>>>>>>>>> much all of the "payload" of these description nodes
> >> are
> >>>>>> strings.
> >>>>>>>>>>>>>> Should we
> >>>>>>>>>>>>>>>> consider returning a string from `topicNameExtractor()`
> >>>>>> instead?
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> In fact, if we did that, we could consider calling
> >>>>> `toString()`
> >>>>>>> on
> >>>>>>>>>> the
> >>>>>>>>>>>>>>>> extractor instead of returning the class name. This
> >> would
> >>>>> allow
> >>>>>>>>>>>> authors
> >>>>>>>>>>>>>> of
> >>>>>>>>>>>>>>>> the extractors to provide more information about the
> >>>>> extractor
> >>>>>>>>> than
> >>>>>>>>>>>> just
> >>>>>>>>>>>>>>>> its name. This might be especially useful in the case
> >> of
> >>>>>>> anonymous
> >>>>>>>>>>>>>>>> implementations.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Thanks for the KIP,
> >>>>>>>>>>>>>>>> -John
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Mon, Jun 25, 2018 at 11:52 PM Ted Yu <
> >>>> yuzhih...@gmail.com
> >>>>>>
> >>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> My previous response was talking about the new method
> >> in
> >>>>>>>>>>>>>>>>> InternalTopologyBuilder.
> >>>>>>>>>>>>>>>>> The exception just means there is no uniform extractor
> >>> for
> >>>>> all
> >>>>>>>>> the
> >>>>>>>>>>>>>> sinks.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On Mon, Jun 25, 2018 at 8:02 PM, Matthias J. Sax <
> >>>>>>>>>>>>>> matth...@confluent.io>
> >>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Ted,
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Why? Each sink can have a different
> >> TopicNameExtractor.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> -Matthias
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/25/18 5:19 PM, Ted Yu wrote:
> >>>>>>>>>>>>>>>>>>> If there are different TopicNameExtractor classes
> >> from
> >>>>>>> multiple
> >>>>>>>>>>>> sink
> >>>>>>>>>>>>>>>>>> nodes,
> >>>>>>>>>>>>>>>>>>> the new method should throw exception alerting user
> >> of
> >>>>> such
> >>>>>>>>>>>> scenario.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> On Mon, Jun 25, 2018 at 2:23 PM, Bill Bejeck <
> >>>>>>>>> bbej...@gmail.com>
> >>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Thanks for the KIP!
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Overall I'm +1 on the KIP.   I have one question.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> The KIP states that the method
> >> "topicNameExtractor()"
> >>>> is
> >>>>>>> added
> >>>>>>>>>> to
> >>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>>> InternalTopologyBuilder.java.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> It could be that I'm missing something, but wow
> >> does
> >>>> this
> >>>>>>> work
> >>>>>>>>>> if
> >>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> user
> >>>>>>>>>>>>>>>>>>>> has provided different TopicNameExtractor instances
> >>> to
> >>>>>>>>> multiple
> >>>>>>>>>>>> sink
> >>>>>>>>>>>>>>>>>> nodes?
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>>>>>>>>> Bill
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On Mon, Jun 25, 2018 at 1:25 PM Guozhang Wang <
> >>>>>>>>>> wangg...@gmail.com
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Yup I agree, generally speaking the `toString()`
> >>>> output
> >>>>> is
> >>>>>>>>> not
> >>>>>>>>>>>>>>>>>>>> recommended
> >>>>>>>>>>>>>>>>>>>>> to be relied on programmatically in user's code,
> >> but
> >>>>> we've
> >>>>>>>>>>>> observed
> >>>>>>>>>>>>>>>>>>>>> convenience-beats-any-other-reasons again and
> >>> again in
> >>>>>>>>>>>> development
> >>>>>>>>>>>>>>>>>>>>> unfortunately. I think we should still not
> >> claiming
> >>> it
> >>>>> is
> >>>>>>>>> part
> >>>>>>>>>> of
> >>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>>>> public APIs that would not be changed anyhow in
> >> the
> >>>>>> future,
> >>>>>>>>> but
> >>>>>>>>>>>>>> just
> >>>>>>>>>>>>>>>>>>>>> mentioning it in the wiki for people to be aware
> >> is
> >>>>> fine.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Guozhang
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> On Sun, Jun 24, 2018 at 5:01 PM, Matthias J. Sax <
> >>>>>>>>>>>>>>>>>> matth...@confluent.io>
> >>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP!
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> I am don't have any further comments.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> For Guozhang's comment: if we mention anything
> >>> about
> >>>>>>>>>>>> `toString()`,
> >>>>>>>>>>>>>>>>> we
> >>>>>>>>>>>>>>>>>>>>>> should make explicit that `toString()` output is
> >>>> still
> >>>>>> not
> >>>>>>>>>>>> public
> >>>>>>>>>>>>>>>>>>>>>> contract and users should not rely on the output.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Furhtermore, for the actual uses output, I would
> >>>>> replace
> >>>>>>>>>>>> "topic:"
> >>>>>>>>>>>>>> by
> >>>>>>>>>>>>>>>>>>>>>> "extractor class:" to make the difference
> >> obvious.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> I am just hoping that people actually to not rely
> >>> on
> >>>>>>>>>>>> `toString()`
> >>>>>>>>>>>>>>>>> what
> >>>>>>>>>>>>>>>>>>>>>> defeats the purpose to the `TopologyDescription`
> >>>> class
> >>>>>> that
> >>>>>>>>>> was
> >>>>>>>>>>>>>>>>>>>>>> introduced to avoid the dependency... (Just a
> >> side
> >>>>>> comment,
> >>>>>>>>>> not
> >>>>>>>>>>>>>>>>> really
> >>>>>>>>>>>>>>>>>>>>>> related to this KIP proposal itself).
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> If there are no further comments in the next
> >> days,
> >>>> feel
> >>>>>>> free
> >>>>>>>>>> to
> >>>>>>>>>>>>>>>>> start
> >>>>>>>>>>>>>>>>>>>>>> the VOTE and open a PR.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> -Matthias
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/22/18 6:04 PM, Guozhang Wang wrote:
> >>>>>>>>>>>>>>>>>>>>>>> Thanks for writing the KIP!
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> I'm +1 on the proposed changes over all. One
> >> minor
> >>>>>>>>>> suggestion:
> >>>>>>>>>>>> we
> >>>>>>>>>>>>>>>>>>>>> should
> >>>>>>>>>>>>>>>>>>>>>>> also mention that the `Sink#toString` will also
> >> be
> >>>>>>> updated,
> >>>>>>>>>> in
> >>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> way
> >>>>>>>>>>>>>>>>>>>>> that
> >>>>>>>>>>>>>>>>>>>>>>> if `topic()` returns null, use the other call,
> >>> etc.
> >>>>> This
> >>>>>>> is
> >>>>>>>>>>>>>> because
> >>>>>>>>>>>>>>>>>>>>>>> although we do not explicitly state the
> >> following
> >>>>> logic
> >>>>>> as
> >>>>>>>>>>>> public
> >>>>>>>>>>>>>>>>>>>>>> protocols:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> "Sink: " + name + " (topic: " + topic() + ")\n
> >>>>> <--
> >>>>>> "
> >>>>>>> +
> >>>>>>>>>>>>>>>>>>>>>>> nodeNames(predecessors);
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> There are already some users that rely on
> >>>>>>>>>>>>>>>>>>>>> `topology.describe().toString(
> >>>>>>>>>>>>>>>>>>>>>> )`
> >>>>>>>>>>>>>>>>>>>>>>> to have runtime checks on the returned string
> >>>> values,
> >>>>> so
> >>>>>>>>>>>> changing
> >>>>>>>>>>>>>>>>>>>> this
> >>>>>>>>>>>>>>>>>>>>>>> means that their app will break and hence need
> >> to
> >>>> make
> >>>>>>> code
> >>>>>>>>>>>>>>>>> changes.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Guozhang
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> On Wed, Jun 20, 2018 at 7:20 PM, Nishanth
> >> Pradeep
> >>> <
> >>>>>>>>>>>>>>>>>>>>> nishanth...@gmail.com
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Hello Everyone,
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> I have created a new KIP to discuss extending
> >>>>>>>>>>>>>> TopologyDescription.
> >>>>>>>>>>>>>>>>>>>> You
> >>>>>>>>>>>>>>>>>>>>>> can
> >>>>>>>>>>>>>>>>>>>>>>>> find it here:
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> https://cwiki.apache.org/
> >>>>> confluence/display/KAFKA/KIP-
> >>>>>>>>>>>>>>>>>>>>>>>> 321%3A+Add+method+to+get+TopicNameExtractor+in+
> >>>>>>>>>>>>>> TopologyDescription
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Please provide any feedback that you might
> >> have.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Best,
> >>>>>>>>>>>>>>>>>>>>>>>> Nishanth Pradeep
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>>>>>>>> -- Guozhang
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> -- Guozhang
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> -- Guozhang
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> -- Guozhang
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >> -- Guozhang
> >>
> >
>
>

Reply via email to