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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]