ableegoldman commented on code in PR #14360:
URL: https://github.com/apache/kafka/pull/14360#discussion_r1465626991


##########
docs/streams/developer-guide/config-streams.html:
##########
@@ -1010,6 +1016,18 @@ <h4><a class="toc-backref" 
href="#id31">topology.optimization</a><a class="heade
           </p>
         </div></blockquote>
     </div>
+    <div class="section" id="windowed.inner.class.serde">
+      <h4><a class="toc-backref" href="#id31">windowed.inner.class.serde</a><a 
class="headerlink" href="#windowed.inner.class.serde" title="Permalink to this 
headline"></a></h4>
+      <blockquote>
+        <div>
+          <p>
+            Serde for the inner class of a windowed record. Must implement the 
org.apache.kafka.common.serialization.Serde interface.
+          </p>
+          <p>
+            Note that setting this config in KafkaStreams application would 
result in an error as it is meant to be used only from Plain consumer client.

Review Comment:
   Bear with me here because it's kind of a long story in full and I only half 
remember it...and also this statement is only half true. A more accurate 
statement would be something like this:
   
   "Note that this config is only used by plain consumer/producer clients that 
set a windowed de/serializer type via configs. For Kafka Streams applications 
that deal with windowed types you must pass in the inner serde type when you 
instantiate the windowed serde object for your topology"
   
   In other words, there's no concept of a "default windowed serde" type in 
Streams because you always have to pass in the actual Serde object, and need to 
pass in the window size and inner serde type at that time. The same can also be 
done for plain producer/consumer clients but someone pointed out that the 
console clients have to be configured via properties, which means they can only 
invoke the default constructor based on the class name passed in for the 
key/value de/serializer configs. Which meant we needed to add the window size 
and inner serde type as configs that could be used to configure a windowed 
Serde that was instantiated via default constructor
   
   I guess we should update the docs string in StreamsConfig as well. I assume 
this error slipped in because of the window.size config, which _is_ only needed 
for the consumer client (since the producer client throws away the window size 
when encoding a windowed type). But both producer and consumer need to know the 
inner serde type



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to