Re: [Question] About Kafka producer design decision making
I should also clarify that Chia-Ping took it over from me originally and improved the proposal significantly. I think he also got busy and hasn't been able to spend time on it for a while though. Ismael On Tue, Jan 2, 2024 at 4:08 PM Ismael Juma wrote: > I had written a KIP a while back: > > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=100829459 > > Happy for someone to pick it up and drive it forward. > > Ismael > > On Tue, Jan 2, 2024 at 2:00 PM Justine Olshan > wrote: > >> Hey folks -- >> I think this is a good conversation. Given we plan to drop support for >> Java 8 in 4.0 this seems like a good time to consider this change. Perhaps >> we should file a JIRA ticket and maybe create a KIP to discuss? >> >> One thing we should consider however, is if we want some of these >> operations to be asynchronous. I know I got into some tricky areas of >> Kafka >> recently that assumed operations completed in a given order so it is good >> to confirm such changes are safe. >> >> Looking forward to further discussion, >> Justine >> >> On Tue, Jan 2, 2024 at 1:14 PM Philip Nee wrote: >> >> > hey sean - a lot of uses of the Futures are in the public API and >> therefore >> > take voting/effort to be changed. i don't know any reason for >> > intentionally avoiding the use of CompletableFuture, however, others >> might >> > know more than I do. >> > >> > thanks, >> > P >> > >> > On Tue, Nov 14, 2023 at 1:27 AM 신수웅(Sean Sin) >> > wrote: >> > >> > > Dear Apache Kakfa Developers, >> > > >> > > I'm 4-year SWE in South Korea. >> > > I have some questions while watching Kafka Producer API. >> > > >> > > *Why Use "Future" and Not "CompletableFuture"?* >> > > >> > > In the case of "Future", blocking occurs when calling "*get()*", so I >> > > thought "Computable Future" would be better when doing more >> asynchronous >> > > operations. >> > > >> > > I looked at the Java API document >> > > < >> > > >> > >> https://kafka.apache.org/36/javadoc/org/apache/kafka/common/KafkaFuture.html#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction) >> > > > >> > > based on the latest version, version 3.6.x. >> > > >> > > If you look at that version, you can see that the Future object >> provides >> > > the "toCompletionStage() "method, which can convert "KafkaFuture" to >> > > "ComputableFuture". >> > > >> > > In response to this, I think that in the initial design decision >> process, >> > > we considered compatibility issues under JDK 1.8 and the level of >> > knowledge >> > > of the learning curve or developer when introducing ComputableFuture, >> > but I >> > > wonder if this is correct. >> > > >> > > In addition, I wonder if it is recommended to use the >> > "toCompletionStage()" >> > > method to produce more non-blocking if we assume JDK 1.8 or higher. >> > > >> > > Thanks. >> > > Su-Ung Shin. >> > > >> > >> >
Re: [Question] About Kafka producer design decision making
I had written a KIP a while back: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=100829459 Happy for someone to pick it up and drive it forward. Ismael On Tue, Jan 2, 2024 at 2:00 PM Justine Olshan wrote: > Hey folks -- > I think this is a good conversation. Given we plan to drop support for > Java 8 in 4.0 this seems like a good time to consider this change. Perhaps > we should file a JIRA ticket and maybe create a KIP to discuss? > > One thing we should consider however, is if we want some of these > operations to be asynchronous. I know I got into some tricky areas of Kafka > recently that assumed operations completed in a given order so it is good > to confirm such changes are safe. > > Looking forward to further discussion, > Justine > > On Tue, Jan 2, 2024 at 1:14 PM Philip Nee wrote: > > > hey sean - a lot of uses of the Futures are in the public API and > therefore > > take voting/effort to be changed. i don't know any reason for > > intentionally avoiding the use of CompletableFuture, however, others > might > > know more than I do. > > > > thanks, > > P > > > > On Tue, Nov 14, 2023 at 1:27 AM 신수웅(Sean Sin) > > wrote: > > > > > Dear Apache Kakfa Developers, > > > > > > I'm 4-year SWE in South Korea. > > > I have some questions while watching Kafka Producer API. > > > > > > *Why Use "Future" and Not "CompletableFuture"?* > > > > > > In the case of "Future", blocking occurs when calling "*get()*", so I > > > thought "Computable Future" would be better when doing more > asynchronous > > > operations. > > > > > > I looked at the Java API document > > > < > > > > > > https://kafka.apache.org/36/javadoc/org/apache/kafka/common/KafkaFuture.html#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction) > > > > > > > based on the latest version, version 3.6.x. > > > > > > If you look at that version, you can see that the Future object > provides > > > the "toCompletionStage() "method, which can convert "KafkaFuture" to > > > "ComputableFuture". > > > > > > In response to this, I think that in the initial design decision > process, > > > we considered compatibility issues under JDK 1.8 and the level of > > knowledge > > > of the learning curve or developer when introducing ComputableFuture, > > but I > > > wonder if this is correct. > > > > > > In addition, I wonder if it is recommended to use the > > "toCompletionStage()" > > > method to produce more non-blocking if we assume JDK 1.8 or higher. > > > > > > Thanks. > > > Su-Ung Shin. > > > > > >
Re: [Question] About Kafka producer design decision making
Hey folks -- I think this is a good conversation. Given we plan to drop support for Java 8 in 4.0 this seems like a good time to consider this change. Perhaps we should file a JIRA ticket and maybe create a KIP to discuss? One thing we should consider however, is if we want some of these operations to be asynchronous. I know I got into some tricky areas of Kafka recently that assumed operations completed in a given order so it is good to confirm such changes are safe. Looking forward to further discussion, Justine On Tue, Jan 2, 2024 at 1:14 PM Philip Nee wrote: > hey sean - a lot of uses of the Futures are in the public API and therefore > take voting/effort to be changed. i don't know any reason for > intentionally avoiding the use of CompletableFuture, however, others might > know more than I do. > > thanks, > P > > On Tue, Nov 14, 2023 at 1:27 AM 신수웅(Sean Sin) > wrote: > > > Dear Apache Kakfa Developers, > > > > I'm 4-year SWE in South Korea. > > I have some questions while watching Kafka Producer API. > > > > *Why Use "Future" and Not "CompletableFuture"?* > > > > In the case of "Future", blocking occurs when calling "*get()*", so I > > thought "Computable Future" would be better when doing more asynchronous > > operations. > > > > I looked at the Java API document > > < > > > https://kafka.apache.org/36/javadoc/org/apache/kafka/common/KafkaFuture.html#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction) > > > > > based on the latest version, version 3.6.x. > > > > If you look at that version, you can see that the Future object provides > > the "toCompletionStage() "method, which can convert "KafkaFuture" to > > "ComputableFuture". > > > > In response to this, I think that in the initial design decision process, > > we considered compatibility issues under JDK 1.8 and the level of > knowledge > > of the learning curve or developer when introducing ComputableFuture, > but I > > wonder if this is correct. > > > > In addition, I wonder if it is recommended to use the > "toCompletionStage()" > > method to produce more non-blocking if we assume JDK 1.8 or higher. > > > > Thanks. > > Su-Ung Shin. > > >
Re: [Question] About Kafka producer design decision making
hey sean - a lot of uses of the Futures are in the public API and therefore take voting/effort to be changed. i don't know any reason for intentionally avoiding the use of CompletableFuture, however, others might know more than I do. thanks, P On Tue, Nov 14, 2023 at 1:27 AM 신수웅(Sean Sin) wrote: > Dear Apache Kakfa Developers, > > I'm 4-year SWE in South Korea. > I have some questions while watching Kafka Producer API. > > *Why Use "Future" and Not "CompletableFuture"?* > > In the case of "Future", blocking occurs when calling "*get()*", so I > thought "Computable Future" would be better when doing more asynchronous > operations. > > I looked at the Java API document > < > https://kafka.apache.org/36/javadoc/org/apache/kafka/common/KafkaFuture.html#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction) > > > based on the latest version, version 3.6.x. > > If you look at that version, you can see that the Future object provides > the "toCompletionStage() "method, which can convert "KafkaFuture" to > "ComputableFuture". > > In response to this, I think that in the initial design decision process, > we considered compatibility issues under JDK 1.8 and the level of knowledge > of the learning curve or developer when introducing ComputableFuture, but I > wonder if this is correct. > > In addition, I wonder if it is recommended to use the "toCompletionStage()" > method to produce more non-blocking if we assume JDK 1.8 or higher. > > Thanks. > Su-Ung Shin. >