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 > >>> > >> > > > >