kafka-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From guozh...@apache.org
Subject kafka git commit: KAFKA-5823: Extend upgrade section for KIP-120
Date Tue, 05 Sep 2017 23:54:02 GMT
Repository: kafka
Updated Branches:
  refs/heads/trunk 5d6996619 -> cd59976ee

KAFKA-5823: Extend upgrade section for KIP-120

Author: Matthias J. Sax <matthias@confluent.io>

Reviewers: Sharon Liu <sharonliu.cup@gmail.com>, Damian Guy <damian.guy@gmail.com>,
Guozhang Wang <wangguoz@gmail.com>

Closes #3787 from mjsax/kafka-5823-kip120-docs

Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/cd59976e
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/cd59976e
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/cd59976e

Branch: refs/heads/trunk
Commit: cd59976eea54efe6367b4c55872ab206f504829a
Parents: 5d69966
Author: Matthias J. Sax <matthias@confluent.io>
Authored: Tue Sep 5 16:54:00 2017 -0700
Committer: Guozhang Wang <wangguoz@gmail.com>
Committed: Tue Sep 5 16:54:00 2017 -0700

 docs/streams/upgrade-guide.html | 40 +++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/docs/streams/upgrade-guide.html b/docs/streams/upgrade-guide.html
index fd5f3f0..93f2e3e 100644
--- a/docs/streams/upgrade-guide.html
+++ b/docs/streams/upgrade-guide.html
@@ -45,7 +45,45 @@
     <h3><a id="streams_api_changes_100" href="#streams_api_changes_100">Streams
API changes in 1.0.0</a></h3>
-    <!-- TODO: KIP-120, 161, 167, 173 -->
+    <!-- TODO: 161, 167, 173, 182 -->
+    <p>
+        With 1.0 a major API refactoring was accomplished and the new API is cleaner and
easier to use.
+        This change includes the five main classes <code>KafakStreams<code>,
+        <code>KStream</code>, <code>KTable</code>, and <code>TopologyBuilder</code>
(and some more others).
+        All changes are fully backward compatible as old API is only deprecated but not removed.
+        We recommend to move to the new API as soon as you can.
+        We will summarize all API changes in the next paragraphs.
+    </p>
+    <p>
+        The two main classes to specify a topology via the DSL (<code>KStreamBuilder</code>)
+        or the Processor API (<code>TopologyBuilder</code>) were deprecated and
replaced by
+        <code>StreamsBuilder</code> and <code>Topology<code> (both
new classes are located in
+        package <code>org.apache.kafka.streams</code>).
+        Note, that <code>StreamsBuilder</code> does not extend <code>Topology</code>,
+        the class hierarchy is different now.
+        The new classes have basically the same methods as the old ones to build a topology
via DSL or Processor API.
+        However, some internal methods that were public in <code>KStreamBuilder</code>
+        and <code>TopologyBuilder</code> but not part of the actual API are not
+        in the new classe any longer.
+        Furthermore, some overloads were simplified compared to the original classes.
+        See <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-120%3A+Cleanup+Kafka+Streams+builder+API">KIP-120</a>
+        and <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-182%3A+Reduce+Streams+DSL+overloads+and+allow+easier+use+of+custom+storage+engines">KIP-182</a>
+        for full details.
+    </p>
+    <p>
+        Changing how a topology is specified also affects <code>KafkaStreams<code>
+        that now only accept a <code>Topology</code>.
+        Using the DSL builder class <code>StreamsBuilder</code> one can get the
+        <code>Topology</code> via <code>StreamsBuilder#build()</code>.
+        Additionally, a new class <code>org.apache.kafka.streams.TopologyDescription</code>
+        (and some more dependent classes) were added.
+        Those can be used to get a detailed description of the specified topology
+        and can be obtained by calling <code>Topology#describe()</code>.
+        An example using this new API is shown in the <a href="/{{version}}/documentation/streams/quickstart">quickstart
+    </p>
         The Processor API was extended to allow users to schedule <code>punctuate</code>
functions either based on data-driven <b>stream time</b> or wall-clock time.

View raw message