JimGalasyn commented on code in PR #16313: URL: https://github.com/apache/kafka/pull/16313#discussion_r1638981274
########## docs/streams/upgrade-guide.html: ########## @@ -303,6 +303,61 @@ <h3><a id="streams_api_changes_350" href="#streams_api_changes_350">Streams API adds a new config <code>default.client.supplier</code> that allows to use a custom <code>KafkaClientSupplier</code> without any code changes. </p> + <h3><a id="streams_api_changes_320" href="#streams_api_changes_320">Streams API changes in 3.2.0</a></h3> + <p> + RocksDB offers many metrics which are critical to monitor and tune its performance. Kafka Streams started to make RocksDB metrics accessible + like any other Kafka metric via <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-471%3A+Expose+RocksDB+Metrics+in+Kafka+Streams">KIP-471</a> in 2.4.0 release. + However, the KIP was only partially implemented, and is now completed with the 3.2.0 release. + For a full list of available RocksDB metrics, please consult the <a href="/{{version}}/documentation/#kafka_streams_client_monitoring">monitoring documentation</a>. + </p> + + <p> + Kafka Streams ships with RocksDB and in-memory store implementations and user can pick which one to use. + However, for the DSL, the choice is a per-operator one, making it cumbersome to switch from the default RocksDB + store to in-memory store for all operators, especially for larger topologies. + <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-591%3A+Add+Kafka+Streams+config+to+set+default+state+store">KIP-591</a> + adds a new config <code>default.dsl.store</code> that allows to set the default store for all DSL operators globally. + Note, that it is required to pass <code>TopologyConfig</code> to the <code>StreamsBuilder</code> constructor to make use of this new config. + </p> + + <p> + For multi-AZ deployments, it is desired to assign StandbyTasks to a KafkaStreams instance running in a different + AZ than the corresponding active StreamTask. + <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-708%3A+Rack+aware+StandbyTask+assignment+for+Kafka+Streams">KIP-708</a> + allows to configure Kafka Streams instances with a rack-aware StandbyTask assignment strategy, by using the new added configs + <code>rack.aware.assignment.tags</code> and corresponding <code>client.tag.<myTag></code>. + </p> + + <p> + <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-791%3A+Add+Record+Metadata+to+State+Store+Context">KIP-791</a> + adds a new method <code>Optional<RecordMetadata> StateStoreContext.recordMetadata()</code> to expose + record metadata. This helps for example to provide read-your-writes consistency guarantees in interactive queries. + </p> + + <p> + <a href="/documentation/streams/developer-guide/interactive-queries.html">Interactive Queries</a> allow users to + tap into the operational state of Kafka Streams processor nodes. The existing API is tightly coupled with the + actual state store interfaces and thus the internal implementation of state store. To break up this tight coupling + and allow for building more advanced IQ features, + <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-796%3A+Interactive+Query+v2">KIP-796</a> introduces + a completely new IQv2 API, via <code>StateQueryRequest</code> and <code>StateQueryResult</code> classes, + as well as <code>Query</code> and <code>QueryResult</code> interfaces (plus additional helper classes). + + In addition, multiple built-in query types were added: <code>KeyQuery</code> for key lookups and + <code>RangeQuery</code> (via <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-805%3A+Add+range+and+scan+query+over+kv-store+in+IQv2">KIP-805</a>) + for key-range queries on key-value stores, as well as <code>WindowKeyQuery</code> and <code>WindowRangeQuery</code> + (via <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-806%3A+Add+session+and+window+query+over+kv-store+in+IQv2">KIP-806</a>) + for key and range lookup into windowed stores. + </p> + + <p> + The Kafka Streams DSL may insert so-called repartition topic for certain DSL operators to ensure correct partitioning Review Comment: ```suggestion The Kafka Streams DSL may insert so-called repartition topics for certain DSL operators to ensure correct partitioning ``` -- 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