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