Thanks for the explanation Bill. Makes sense to me. On Tue, Jun 12, 2018 at 9:21 AM, Bill Bejeck <bbej...@gmail.com> wrote:
> > Since there're only two values for the optional optimization config > > introduced by KAFKA-6935, I wonder the overloaded build method (with > Properties > > instance) would make the config unnecessary. > > Hi Ted, thanks for commenting. You raise a good point. Buy IMHO, yes we > still need the config as we want to give users the ability to turn > optimizations off/on explicitly and we haven't finalized anything > concerning how we'll pass in the parameters. Additionally, as we release > new versions, the config will give users the ability to choose to apply all > of the latest optimizations or stick with the previous version. > > Guozhang, > > > if we can hide this from the public API, to, e.g. add an additional > function > > in InternalTopologyBuilder of InternalStreamsBuilder (since in your > current > > working PR we're reusing InternalStreamsBuilder for the logical plan > > generation) which can then be called inside KafkaStreams constructors? > > I like the idea, but as I looked into it, there is an issue concerning the > fact that users can call Topology.describe() at any point. So with this > approach, we could end up where the first call to Topology.describe() > errors out or returns an invalid description, then the second call is > successful. So I don't think we'll be able to pursue this approach. > > > John, > > I initially liked your suggestion, but I also agree with Matthias as to why > we should not use that approach either. > > Thanks to all for the comments. > > Bill > > > On Mon, Jun 11, 2018 at 4:13 PM John Roesler <j...@confluent.io> wrote: > > > Thanks Matthias, > > > > I buy this reasoning. > > > > -John > > > > On Mon, Jun 11, 2018 at 12:48 PM, Matthias J. Sax <matth...@confluent.io > > > > wrote: > > > > > @John: I don't think this is a good idea. `KafkaStreams` executes a > > > `Topology` and should be agnostic if the topology was build manually or > > > via `StreamsBuilder` (at least from my point of view). > > > > > > -Matthias > > > > > > On 6/11/18 9:53 AM, Guozhang Wang wrote: > > > > Another implementation detail that we can consider: currently the > > > > InternalTopologyBuilder#setApplicationId() is used because we do not > > > have > > > > such a mechanism to pass in configs to the topology building process. > > > Once > > > > we add such mechanism we should consider removing this function as > > well. > > > > > > > > > > > > Guozhang > > > > > > > > On Mon, Jun 11, 2018 at 9:51 AM, Guozhang Wang <wangg...@gmail.com> > > > wrote: > > > > > > > >> Hello Bill, > > > >> > > > >> While working on https://github.com/apache/kafka/pull/5163 I am > > > wondering > > > >> if we can hide this from the public API, to e.g. add an additional > > > function > > > >> in InternalTopologyBuilder of InternalStreamsBuilder (since in your > > > current > > > >> working PR we're reusing InternalStreamsBuilder for the logical plan > > > >> generation) which can then be called inside KafkaStreams > constructors? > > > >> > > > >> > > > >> Guozhang > > > >> > > > >> > > > >> On Mon, Jun 11, 2018 at 9:41 AM, John Roesler <j...@confluent.io> > > > wrote: > > > >> > > > >>> Hi Bill, > > > >>> > > > >>> Thanks for the KIP. > > > >>> > > > >>> Just a small thought. This new API will result in calls that look > > like > > > >>> this: > > > >>> new KafkaStreams(builder.build(props), props); > > > >>> > > > >>> Do you think that's a significant enough eyesore to warrant adding > a > > > new > > > >>> KafkaStreams constructor taking a KStreamsBuilder like this: > > > >>> new KafkaStreams(builder, props); > > > >>> > > > >>> such that it would internally call builder.build(props) ? > > > >>> > > > >>> Thanks, > > > >>> -John > > > >>> > > > >>> > > > >>> > > > >>> On Fri, Jun 8, 2018 at 7:16 PM, Ted Yu <yuzhih...@gmail.com> > wrote: > > > >>> > > > >>>> Since there're only two values for the optional optimization > config > > > >>>> introduced by KAFKA-6935, I wonder the overloaded build method > (with > > > >>>> Properties > > > >>>> instance) would make the config unnecessary. > > > >>>> > > > >>>> nit: > > > >>>> * @return @return the {@link Topology} that represents the > specified > > > >>>> processing logic > > > >>>> > > > >>>> Double @return above. > > > >>>> > > > >>>> Cheers > > > >>>> > > > >>>> On Fri, Jun 8, 2018 at 3:20 PM, Bill Bejeck <b...@confluent.io> > > > wrote: > > > >>>> > > > >>>>> All, > > > >>>>> > > > >>>>> I'd like to start the discussion for adding an overloaded method > to > > > >>>>> StreamsBuilder taking a java.util.Properties instance. > > > >>>>> > > > >>>>> The KIP is located here : > > > >>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP- > > > >>>>> 312%3A+Add+Overloaded+StreamsBuilder+Build+Method+ > > > >>>>> to+Accept+java.util.Properties > > > >>>>> > > > >>>>> I look forward to your comments. > > > >>>>> > > > >>>>> Thanks, > > > >>>>> Bill > > > >>>>> > > > >>>> > > > >>> > > > >> > > > >> > > > >> > > > >> -- > > > >> -- Guozhang > > > >> > > > > > > > > > > > > > > > > > > > > > -- -- Guozhang