Thanks, François!

Those changes look good to me.

Thanks,
-John

On Fri, May 6, 2022, at 13:51, François Rosière wrote:
> The KIP has been updated to reflect the last discussion
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=211882578#KIP832:Allowcreatingaproducer/consumerusingaproducer/consumerconfig-ProposedChanges
>
>
> Le ven. 6 mai 2022 à 20:44, François Rosière <francois.rosi...@gmail.com> a
> écrit :
>
>> Hello,
>>
>> No problem to also add a constructor taking the StreamsConfig in the
>> TopologyTestDriver.
>>
>> Summary about the changes to apply:
>>
>>    - Create 2 new constructors in KafkaProducer
>>    - Create a new constructor in KafkaConsumer and increase de visibility
>>    of an existing one
>>    - Create a new constructor in TopologyTestDriver
>>
>> Kr,
>>
>> F.
>>
>> Le ven. 6 mai 2022 à 16:57, John Roesler <vvcep...@apache.org> a écrit :
>>
>>> Thanks for the KIP, François!
>>>
>>> I'm generally in favor of your KIP, since you're
>>> proposing to follow the existing pattern of the
>>> constructors for both Producer and Consumer,
>>> but with the config object instead of Properties
>>> or Map configs. Also, because we already have
>>> this pattern in Streams, and we are just
>>> extending it to Producer and Consumer.
>>>
>>> Following on the KIP-378 discussion, I do still think
>>> this is somewhat of an abuse of the Config objects,
>>> and it would be better to have a formal dependency
>>> injection interface, but I also don't want to let perfect
>>> be the enemy of good. Since it looks like this approach
>>> works, and there is also some precedent for it already,
>>> I'd be inclined to approve it.
>>>
>>> Since KIP-378 didn't make it over the finish line, and it
>>> seems like a small expansion to your proposal, do you
>>> mind also adding the StreamsConfig to the
>>> TopologyTestDriver constructors? That way, we can go
>>> ahead and resolve both KIPs at once.
>>>
>>> Thank you,
>>> -John
>>>
>>>
>>> On Fri, May 6, 2022, at 06:06, François Rosière wrote:
>>> > To stay consistent with existing code, we should simply add 2
>>> constructors.
>>> > One with ser/deser and one without.
>>> > So that, users have the choice to use one or the other.
>>> > I updated the KIP accordingly.
>>> >
>>> > Le ven. 6 mai 2022 à 12:55, François Rosière <
>>> francois.rosi...@gmail.com> a
>>> > écrit :
>>> >
>>> >> On the other hand, the KafkaConsumer constructor with a config +
>>> >> serializer and deserializer already exists but is not public.
>>> >> It would also complexify a bit the caller to not have the
>>> >> serializer/deserializer exposed at constructor level.
>>> >>
>>> >> Once the KIP would have been implemented, for streams, instead of
>>> having a
>>> >> custom config (already possible), I may simply define a custom
>>> >> KafkaClientSupplier reusing the custom configs of both the producer
>>> and the
>>> >> consumer.
>>> >> This supplier currently creates producers and consumers using the
>>> >> constructors with a map of config + serializer/deserializer.
>>> >>
>>> >> So, it seems it's easier to have the constructor with 3 parameters.
>>> But in
>>> >> any case, it will work if the config can be accessed...
>>> >>
>>> >> Le ven. 6 mai 2022 à 12:14, François Rosière <
>>> francois.rosi...@gmail.com>
>>> >> a écrit :
>>> >>
>>> >>> Hello,
>>> >>>
>>> >>> We may create a constructor with a single parameter which is the
>>> config
>>> >>> but then, I would need to give the serializer/deserializer by also
>>> >>> overriding the config.
>>> >>> Like I would do for the interceptors.
>>> >>> So, no real opinion on that, both solutions are ok for me.
>>> >>> Maybe easier to take the approach of the single parameter.
>>> >>>
>>> >>> Hope it respond to the question.
>>> >>>
>>> >>> Kr,
>>> >>>
>>> >>> F.
>>> >>>
>>> >>> Le ven. 6 mai 2022 à 11:59, Bruno Cadonna <cado...@apache.org> a
>>> écrit :
>>> >>>
>>> >>>> Hi Francois,
>>> >>>>
>>> >>>> Thank you for updating the KIP!
>>> >>>>
>>> >>>> Now the motivation of the KIP is much clearer.
>>> >>>>
>>> >>>> I would still be interested in:
>>> >>>>
>>> >>>>  >> 2. Why do you only want to change/add the constructors that take
>>> the
>>> >>>>  >> properties objects and de/serializers and you do not also want to
>>> >>>>  >> add/change the constructors that take only the properties?
>>> >>>>
>>> >>>>
>>> >>>> Best,
>>> >>>> Bruno
>>> >>>>
>>> >>>> On 05.05.22 23:15, François Rosière wrote:
>>> >>>> > Hello Bruno,
>>> >>>> >
>>> >>>> > The KIP as been updated. Feel free to give more feedbacks and I
>>> will
>>> >>>> > complete accordingly.
>>> >>>> >
>>> >>>> > Kr,
>>> >>>> >
>>> >>>> > F.
>>> >>>> >
>>> >>>> > Le jeu. 5 mai 2022 à 22:22, Bruno Cadonna <cado...@apache.org> a
>>> >>>> écrit :
>>> >>>> >
>>> >>>> >> Hi Francois,
>>> >>>> >>
>>> >>>> >> Thanks for the KIP!
>>> >>>> >>
>>> >>>> >> Here my first feedback:
>>> >>>> >>
>>> >>>> >> 1. Could you please extend the motivation section, so that it is
>>> clear
>>> >>>> >> for a non-Spring dev why the change is needed? Usually, a
>>> motivation
>>> >>>> >> section benefits a lot from an actual example.
>>> >>>> >> Extending the motivation section would also make the KIP more
>>> >>>> >> self-contained which is important IMO since this is kind of a log
>>> of
>>> >>>> the
>>> >>>> >> major changes to Kafka. Descriptions of major changes should not
>>> >>>> >> completely depend on external links (which may become dead in
>>> future).
>>> >>>> >> Referencing external resources to point to more details or give
>>> >>>> context
>>> >>>> >> is useful, though.
>>> >>>> >>
>>> >>>> >> 2. Why do you only want to change/add the constructors that take
>>> the
>>> >>>> >> properties objects and de/serializers and you do not also want to
>>> >>>> >> add/change the constructors that take only the properties?
>>> >>>> >>
>>> >>>> >> 3. I found the following stalled KIP whose motivation is really
>>> >>>> similar
>>> >>>> >> to yours:
>>> >>>> >>
>>> >>>> >>
>>> >>>> >>
>>> >>>>
>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-378%3A+Enable+Dependency+Injection+for+Kafka+Streams+handlers
>>> >>>> >>
>>> >>>> >> That KIP is also the reason why Kafka Streams still has the
>>> >>>> constructors
>>> >>>> >> with the StreamsConfig parameter. Maybe you want to mention this
>>> KIP
>>> >>>> in
>>> >>>> >> yours or even incorporate the remaining topology test driver API
>>> >>>> changes
>>> >>>> >> in your KIP.
>>> >>>> >> Some related links:
>>> >>>> >> -
>>> https://github.com/apache/kafka/pull/5344#issuecomment-413350338
>>> >>>> >> - https://github.com/apache/kafka/pull/10484
>>> >>>> >> - https://issues.apache.org/jira/browse/KAFKA-6386
>>> >>>> >>
>>> >>>> >> Best,
>>> >>>> >> Bruno
>>> >>>> >>
>>> >>>> >>
>>> >>>> >> On 04.05.22 22:26, François Rosière wrote:
>>> >>>> >>> Hi all,
>>> >>>> >>>
>>> >>>> >>> KIP-832 has been created to allow implementing Spring managed
>>> >>>> >> interceptors
>>> >>>> >>> for Producers and Consumers.
>>> >>>> >>>
>>> >>>> >>> At the moment, interceptors are given as configuration classes
>>> to the
>>> >>>> >>> producer and consumer configurations. So, the idea here would be
>>> to
>>> >>>> >> create
>>> >>>> >>> 2 new constructors to allow using a Producer and Consumer
>>> >>>> configuration
>>> >>>> >>> instead of properties or a key value map of configurations
>>> entries.
>>> >>>> >>> Interceptors could then be given as instances by overriding a
>>> config
>>> >>>> >> method.
>>> >>>> >>> More details can be found in the Spring issue.
>>> >>>> >>> https://github.com/spring-projects/spring-kafka/issues/2244
>>> >>>> >>>
>>> >>>> >>> Any feedback, proposal, vote for this KIP would be more than
>>> welcome.
>>> >>>> >>>
>>> >>>> >>> Kind regards,
>>> >>>> >>>
>>> >>>> >>> Francois R.
>>> >>>> >>>
>>> >>>> >>> Le lun. 2 mai 2022 à 21:05, François Rosière <
>>> >>>> francois.rosi...@gmail.com>
>>> >>>> >> a
>>> >>>> >>> écrit :
>>> >>>> >>>
>>> >>>> >>>> Kip link:
>>> >>>> >>>>
>>> >>>> >>
>>> >>>>
>>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=211882578
>>> >>>> >>>>
>>> >>>> >>>>
>>> >>>> >>>
>>> >>>> >>
>>> >>>> >
>>> >>>>
>>> >>>
>>>
>>

Reply via email to