Hello Cédric, Your observation is correct, and I think we have some obsoleted docs that we need to fix. In KIP-182 ( https://cwiki.apache.org/confluence/display/KAFKA/KIP-182%3A+Reduce+Streams+DSL+overloads+and+allow+easier+use+of+custom+storage+engines) we are effectively materializing all state stores with a changelog enabled by default, but the javadocs have not be updated yet.
We are working on some topology optimization techniques in the near future to re-enable such optimizations now: https://issues.apache.org/jira/browse/KAFKA-6034. Guozhang On Thu, Mar 29, 2018 at 7:52 AM, Cedric BERTRAND < bertrandcedric....@gmail.com> wrote: > Hello, > > In the new api 1.0.0 for building KTable, it is written that No internal > changelod topic is created. > > public <K,V> KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html><K,V> > table(java.lang.String topic) > > Create a KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html> > for > the specified topic. The default "auto.offset.reset" strategy and default > key and value deserializers as specified in the config > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/StreamsConfig.html> > are > used. Input records > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/KeyValue.html> > with null key will be dropped. > > Note that the specified input topics must be partitioned by key. If this is > not the case the returned KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html> > will > be corrupted. > > The resulting KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html> > will > be materialized in a local KeyValueStore > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/state/KeyValueStore.html> > with > an internal store name. Note that that store name may not be queriable > through Interactive Queries. *No internal changelog topic is created since > the original input topic can be used for recovery (cf. methods > of KGroupedStream > <https://kafka.apache.org/10/javadoc/org/apache/kafka/streams/kstream/ > KGroupedStream.html> > and KGroupedTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KGroupedTable.html> > that > return a KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html>).* > Parameters:topic - the topic name; cannot be nullReturns:a KTable > <https://kafka.apache.org/10/javadoc/org/apache/kafka/ > streams/kstream/KTable.html> > for > the specified topic > > My code is as followed :KTable<K, V> table = builder.table("my_topic"); > > When I look at the created topics I can see an internal topic > "application_id-my_topicSTATE-STORE-0000000002-changelog". > Do I missed something ? > Thanks, > Cédric > -- -- Guozhang