kafka-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mj...@apache.org
Subject [kafka-site] branch asf-site updated: Update docs for 1.0.2 release (#149)
Date Mon, 16 Jul 2018 03:57:32 GMT
This is an automated email from the ASF dual-hosted git repository.

mjsax pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new bc87993  Update docs for 1.0.2 release (#149)
bc87993 is described below

commit bc87993f589472f0967aff629fc7ede35374f696
Author: Matthias J. Sax <mjsax@apache.org>
AuthorDate: Sun Jul 15 20:57:30 2018 -0700

    Update docs for 1.0.2 release (#149)
---
 10/generated/producer_config.html              |   2 +-
 10/generated/protocol_errors.html              |   2 +-
 10/generated/streams_config.html               |   2 +
 10/js/templateData.js                          |   2 +-
 10/protocol.html                               |   9 +-
 10/streams/core-concepts.html                  |   8 +-
 10/streams/developer-guide/config-streams.html |  46 ++++++-
 10/streams/developer-guide/dsl-api.html        |  11 +-
 10/streams/developer-guide/processor-api.html  |   4 +-
 10/streams/index.html                          |  29 +----
 10/streams/upgrade-guide.html                  |  46 ++++---
 10/upgrade.html                                | 162 ++++++++++++++++++++++++-
 downloads.html                                 | 156 +++++++++++++-----------
 13 files changed, 351 insertions(+), 128 deletions(-)

diff --git a/10/generated/producer_config.html b/10/generated/producer_config.html
index 4545b0d..3ff65e4 100644
--- a/10/generated/producer_config.html
+++ b/10/generated/producer_config.html
@@ -110,7 +110,7 @@
 <tr>
 <td>ssl.trustmanager.algorithm</td><td>The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.</td><td>string</td><td>PKIX</td><td></td><td>low</td></tr>
 <tr>
-<td>transaction.timeout.ms</td><td>The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the max.transaction.timeout.ms setting in the broker, the request will fail with a `InvalidTransactionTimeout` error.</td><td>int</td><td>60000</td><td></td><td>low</td></tr>
+<td>transaction.timeout.ms</td><td>The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a `InvalidTransactionTimeout` error.</td><td>int</td><td>60000</td><td></td><td>low</td></tr>
 <tr>
 <td>transactional.id</td><td>The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. Note that enable.idempotence must be enabled if a TransactionalId is configured. The default is <c [...]
 </tbody></table>
diff --git a/10/generated/protocol_errors.html b/10/generated/protocol_errors.html
index 99d68b0..de38465 100644
--- a/10/generated/protocol_errors.html
+++ b/10/generated/protocol_errors.html
@@ -55,7 +55,7 @@
 <tr><td>INVALID_PRODUCER_EPOCH</td><td>47</td><td>False</td><td>Producer attempted an operation with an old epoch. Either there is a newer producer with the same transactionalId, or the producer's transaction has been expired by the broker.</td></tr>
 <tr><td>INVALID_TXN_STATE</td><td>48</td><td>False</td><td>The producer attempted a transactional operation in an invalid state</td></tr>
 <tr><td>INVALID_PRODUCER_ID_MAPPING</td><td>49</td><td>False</td><td>The producer attempted to use a producer id which is not currently assigned to its transactional id</td></tr>
-<tr><td>INVALID_TRANSACTION_TIMEOUT</td><td>50</td><td>False</td><td>The transaction timeout is larger than the maximum value allowed by the broker (as configured by max.transaction.timeout.ms).</td></tr>
+<tr><td>INVALID_TRANSACTION_TIMEOUT</td><td>50</td><td>False</td><td>The transaction timeout is larger than the maximum value allowed by the broker (as configured by transaction.max.timeout.ms).</td></tr>
 <tr><td>CONCURRENT_TRANSACTIONS</td><td>51</td><td>False</td><td>The producer attempted to update a transaction while another concurrent operation on the same transaction was ongoing</td></tr>
 <tr><td>TRANSACTION_COORDINATOR_FENCED</td><td>52</td><td>False</td><td>Indicates that the transaction coordinator sending a WriteTxnMarker is no longer the current coordinator for a given producer</td></tr>
 <tr><td>TRANSACTIONAL_ID_AUTHORIZATION_FAILED</td><td>53</td><td>False</td><td>Transactional Id authorization failed</td></tr>
diff --git a/10/generated/streams_config.html b/10/generated/streams_config.html
index 93a5c04..10d99c1 100644
--- a/10/generated/streams_config.html
+++ b/10/generated/streams_config.html
@@ -78,6 +78,8 @@
 <tr>
 <td>timestamp.extractor</td><td>Timestamp extractor class that implements the <code>org.apache.kafka.streams.processor.TimestampExtractor</code> interface. This config is deprecated, use <code>default.timestamp.extractor</code> instead</td><td>class</td><td>null</td><td></td><td>low</td></tr>
 <tr>
+<td>upgrade.from</td><td>Allows upgrading from version 0.10.0 to version 0.10.1 (or newer) in a backward compatible way. Default is null. Accepted values are "0.10.0" (for upgrading from 0.10.0.x).</td><td>string</td><td>null</td><td>[null, 0.10.0]</td><td>low</td></tr>
+<tr>
 <td>value.serde</td><td>Serializer / deserializer class for value that implements the <code>org.apache.kafka.common.serialization.Serde</code> interface. This config is deprecated, use <code>default.value.serde</code> instead</td><td>class</td><td>null</td><td></td><td>low</td></tr>
 <tr>
 <td>windowstore.changelog.additional.retention.ms</td><td>Added to a windows maintainMs to ensure data is not deleted from the log prematurely. Allows for clock drift. Default is 1 day</td><td>long</td><td>86400000</td><td></td><td>low</td></tr>
diff --git a/10/js/templateData.js b/10/js/templateData.js
index 2238b08..655f127 100644
--- a/10/js/templateData.js
+++ b/10/js/templateData.js
@@ -19,6 +19,6 @@ limitations under the License.
 var context={
     "version": "10",
     "dotVersion": "1.0",
-    "fullDotVersion": "1.0.1",
+    "fullDotVersion": "1.0.2",
     "scalaVersion": "2.11"
 };
diff --git a/10/protocol.html b/10/protocol.html
index 4042223..6e45b5e 100644
--- a/10/protocol.html
+++ b/10/protocol.html
@@ -148,10 +148,11 @@
   <li>Kafka <code>ApiVersionsRequest</code> may be sent by the client to obtain the version ranges of requests supported by the broker. This is optional.</li>
   <li>Kafka <code>SaslHandshakeRequest</code> containing the SASL mechanism for authentication is sent by the client. If the requested mechanism is not enabled
     in the server, the server responds with the list of supported mechanisms and closes the client connection. If the mechanism is enabled
-    in the server, the server sends a successful response and continues with SASL authentication.
-  <li>The actual SASL authentication is now performed. A series of SASL client and server tokens corresponding to the mechanism are sent as opaque
-    packets. These packets contain a 32-bit size followed by the token as defined by the protocol for the SASL mechanism.
-  <li>If authentication succeeds, subsequent packets are handled as Kafka API requests. Otherwise, the client connection is closed.
+    in the server, the server sends a successful response and continues with SASL authentication.</li>
+  <li>The actual SASL authentication is now performed. If <code>SaslHandshakeRequest</code> version is v0, a series of SASL client and server tokens corresponding to the mechanism are sent
+     as opaque packets without wrapping the messages with Kafka protocol headers. If <code>SaslHandshakeRequest</code> version is v1, the <code>SaslAuthenticate</code>
+     request/response are used, where the actual SASL tokens are wrapped in the Kafka protocol. The error code in the final message from the broker will indicate if authentication succeeded or failed.</li>
+  <li>If authentication succeeds, subsequent packets are handled as Kafka API requests. Otherwise, the client connection is closed.</li>
 </ol>
 <p>For interoperability with 0.9.0.x clients, the first packet received by the server is handled as a SASL/GSSAPI client token if it is not a valid
 Kafka request. SASL/GSSAPI authentication is performed starting with this packet, skipping the first two steps above.</p>
diff --git a/10/streams/core-concepts.html b/10/streams/core-concepts.html
index 1e48805..f2f32ad 100644
--- a/10/streams/core-concepts.html
+++ b/10/streams/core-concepts.html
@@ -63,7 +63,7 @@
     <ul>
         <li>A <b>stream</b> is the most important abstraction provided by Kafka Streams: it represents an unbounded, continuously updating data set. A stream is an ordered, replayable, and fault-tolerant sequence of immutable data records, where a <b>data record</b> is defined as a key-value pair.</li>
         <li>A <b>stream processing application</b> is any program that makes use of the Kafka Streams library. It defines its computational logic through one or more <b>processor topologies</b>, where a processor topology is a graph of stream processors (nodes) that are connected by streams (edges).</li>
-        <li>A <b><a id="#streams_processor_node" href="#streams_processor_node">stream processor</a></b> is a node in the processor topology; it represents a processing step to transform data in streams by receiving one input record at a time from its upstream processors in the topology, applying its operation to it, and may subsequently produce one or more output records to its downstream processors. </li>
+        <li>A <b><a href="#streams_processor_node">stream processor</a></b> is a node in the processor topology; it represents a processing step to transform data in streams by receiving one input record at a time from its upstream processors in the topology, applying its operation to it, and may subsequently produce one or more output records to its downstream processors. </li>
     </ul>
 
     There are two special processors in the topology:
@@ -78,14 +78,14 @@
     <img class="centered" src="/{{version}}/images/streams-architecture-topology.jpg" style="width:400px">
 
     <p>
-        Kafka Streams offers two ways to define the stream processing topology: the <a href="/{{version}}/documentation/streams/developer-guide/dsl-api.html"><b>Kafka Streams DSL</b></a> provides
-        the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code> and <code>aggregations</code> out of the box; the lower-level <a href="/{{version}}/documentation/streams/developer-guide/processor-api.html"><b>Processor API</b></a> allows
+        Kafka Streams offers two ways to define the stream processing topology: the <a href="/{{version}}/documentation/streams/developer-guide#streams_dsl"><b>Kafka Streams DSL</b></a> provides
+        the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code> and <code>aggregations</code> out of the box; the lower-level <a href="/{{version}}/documentation/streams/developer-guide#streams_processor"><b>Processor API</b></a> allows
         developers define and connect custom processors as well as to interact with <a href="#streams_state">state stores</a>.
     </p>
 
     <p>
         A processor topology is merely a logical abstraction for your stream processing code.
-        At runtime, the logical topology is instantiated and replicated inside the application for parallel processing (see <a href="/{{version}}/documentation/streams/architecture#streams_architecture_tasks"><b>Stream Partitions and Tasks</b></a> for details).
+        At runtime, the logical topology is instantiated and replicated inside the application for parallel processing (see <a href="#streams_architecture_tasks"><b>Stream Partitions and Tasks</b></a> for details).
     </p>
 
     <h3><a id="streams_time" href="#streams_time">Time</a></h3>
diff --git a/10/streams/developer-guide/config-streams.html b/10/streams/developer-guide/config-streams.html
index fd0cbca..7b029a7 100644
--- a/10/streams/developer-guide/config-streams.html
+++ b/10/streams/developer-guide/config-streams.html
@@ -75,6 +75,7 @@
             <li><a class="reference internal" href="#num-standby-replicas" id="id10">num.standby.replicas</a></li>
             <li><a class="reference internal" href="#num-stream-threads" id="id11">num.stream.threads</a></li>
             <li><a class="reference internal" href="#partition-grouper" id="id12">partition.grouper</a></li>
+            <li><a class="reference internal" href="#processing-guarantee" id="id25">processing.guarantee</a></li>
             <li><a class="reference internal" href="#replication-factor" id="id13">replication.factor</a></li>
             <li><a class="reference internal" href="#state-dir" id="id14">state.dir</a></li>
             <li><a class="reference internal" href="#timestamp-extractor" id="id15">timestamp.extractor</a></li>
@@ -98,6 +99,13 @@
         <h3><a class="toc-backref" href="#id3">Required configuration parameters</a><a class="headerlink" href="#required-configuration-parameters" title="Permalink to this headline"></a></h3>
         <p>Here are the required Streams configuration parameters.</p>
         <table border="1" class="non-scrolling-table docutils">
+          <colgroup>
+            <col width="20%" />
+            <col width="5%" />
+            <col width="7%" />
+            <col width="38%" />
+            <col width="31%" />
+          </colgroup>
           <thead valign="bottom">
           <tr class="row-odd"><th class="head">Parameter Name</th>
             <th class="head">Importance</th>
@@ -162,6 +170,13 @@
           </ul>
           </div></blockquote>
         <table border="1" class="non-scrolling-table docutils">
+          <colgroup>
+            <col width="20%" />
+            <col width="5%" />
+            <col width="7%" />
+            <col width="38%" />
+            <col width="31%" />
+          </colgroup>
           <thead valign="bottom">
           <tr class="row-odd"><th class="head">Parameter Name</th>
             <th class="head">Importance</th>
@@ -201,7 +216,7 @@
           <tr class="row-odd"><td>default.deserialization.exception.handler</td>
             <td>Medium</td>
             <td colspan="2">Exception handling class that implements the <code class="docutils literal"><span class="pre">DeserializationExceptionHandler</span></code> interface.</td>
-            <td><code class="docutils literal"><span class="pre">LogAndContinueExceptionHandler</span></code></td>
+            <td>30000 milliseconds</td>
           </tr>
           <tr class="row-even"><td>default.production.exception.handler</td>
             <td>Medium</td>
@@ -248,6 +263,11 @@
             <td colspan="2">Partition grouper class that implements the <code class="docutils literal"><span class="pre">PartitionGrouper</span></code> interface.</td>
             <td>See <a class="reference internal" href="#streams-developer-guide-partition-grouper"><span class="std std-ref">Partition Grouper</span></a></td>
           </tr>
+          <tr class="row-even"><td>processing.guarantee</td>
+            <td>Low</td>
+            <td colspan="2">The processing mode. Can be either <code class="docutils literal"><span class="pre">"at_least_once"</span></code> (default) or <code class="docutils literal"><span class="pre">"exactly_once"</span></code>.
+            <td>See <a class="reference internal" href="#streams-developer-guide-processing-guarantedd"><span class="std std-ref">Processing Guarantee</span></a></td>
+          </tr>
           <tr class="row-odd"><td>poll.ms</td>
             <td>Low</td>
             <td colspan="2">The amount of time in milliseconds to block waiting for input.</td>
@@ -389,6 +409,19 @@
               It assigns each task with one partition for each of the source topic partitions. The generated number of tasks equals the largest
               number of partitions among the input topics. Usually an application does not need to customize the partition grouper.</div></blockquote>
         </div>
+        <div class="section" id="processing-guarantee">
+          <span id="streams-developer-guide-processing-guarantee"></span><h4><a class="toc-backref" href="#id25">processing.guarantee</a><a class="headerlink" href="#processing-guarantee" title="Permalink to this headline"></a></h4>
+          <blockquote>
+            <div>The processing guarantee that should be used. Possible values are <code class="docutils literal"><span class="pre">"at_least_once"</span></code> (default) and <code class="docutils literal"><span class="pre">"exactly_once"</span></code>.
+                 Note that if exactly-once processing is enabled, the default for parameter <code class="docutils literal"><span class="pre">commit.interval.ms</span></code> changes to 100ms.
+                 Additionally, consumers are configured with <code class="docutils literal"><span class="pre">isolation.level="read_committed"</span></code>
+                 and producers are configured with <code class="docutils literal"><span class="pre">retries=Integer.MAX_VALUE</span></code>, <code class="docutils literal"><span class="pre">enable.idempotence=true</span></code>,
+                 and <code class="docutils literal"><span class="pre">max.in.flight.requests.per.connection=1</span></code> per default.
+                 Note that by default exactly-once processing requires a cluster of at least three brokers what is the recommended setting for production.
+                 For development you can change this, by adjusting broker setting <code class="docutils literal"><span class="pre">transaction.state.log.replication.factor</span></code> to the number of broker you want to use.
+                 For more details see <a href="../core-concepts#streams_processing_guarantee">Processing Guarantees</a>.
+            </div></blockquote>
+        </div>
         <div class="section" id="replication-factor">
           <span id="replication-factor-parm"></span><h4><a class="toc-backref" href="#id13">replication.factor</a><a class="headerlink" href="#replication-factor" title="Permalink to this headline"></a></h4>
           <blockquote>
@@ -535,6 +568,11 @@
             of these configs, see <a class="reference external" href="http://kafka.apache.org/0100/documentation.html#producerconfigs">Producer Configs</a>
             and <a class="reference external" href="http://kafka.apache.org/0100/documentation.html#newconsumerconfigs">Consumer Configs</a>.</p>
           <table border="1" class="non-scrolling-table docutils">
+            <colgroup>
+              <col width="50%" />
+              <col width="19%" />
+              <col width="31%" />
+            </colgroup>
             <thead valign="bottom">
             <tr class="row-odd"><th class="head">Parameter Name</th>
               <th class="head">Corresponding Client</th>
@@ -624,6 +662,12 @@
         <h3><a class="toc-backref" href="#id21">Recommended configuration parameters for resiliency</a><a class="headerlink" href="#recommended-configuration-parameters-for-resiliency" title="Permalink to this headline"></a></h3>
         <p>There are several Kafka and Kafka Streams configuration options that need to be configured explicitly for resiliency in face of broker failures:</p>
         <table border="1" class="non-scrolling-table docutils">
+          <colgroup>
+            <col width="22%" />
+            <col width="19%" />
+            <col width="10%" />
+            <col width="49%" />
+          </colgroup>
           <thead valign="bottom">
           <tr class="row-odd"><th class="head">Parameter Name</th>
             <th class="head">Corresponding Client</th>
diff --git a/10/streams/developer-guide/dsl-api.html b/10/streams/developer-guide/dsl-api.html
index 52135ef..112746b 100644
--- a/10/streams/developer-guide/dsl-api.html
+++ b/10/streams/developer-guide/dsl-api.html
@@ -180,8 +180,7 @@
                         (when the record value is not <code class="docutils literal"><span class="pre">null</span></code>) or as DELETE (when the value is <code class="docutils literal"><span class="pre">null</span></code>) for that key.
                         <a class="reference external" href="../../../javadoc/org/apache/kafka/streams/StreamsBuilder.html#globalTable-java.lang.String(java.lang.String)">(details)</a></p>
                         <p>In the case of a GlobalKTable, the local GlobalKTable instance of every application instance will
-                            be populated with data from only <strong>a subset</strong> of the partitions of the input topic.  Collectively, across
-                            all application instances, all input topic partitions are read and processed.</p>
+                            be populated with data from <strong>all</strong> the partitions of the input topic.</p>
                         <p>You must provide a name for the table (more precisely, for the internal
                             <a class="reference internal" href="../architecture.html#streams-architecture-state"><span class="std std-ref">state store</span></a> that backs the table).  This is required for
                             supporting <a class="reference internal" href="interactive-queries.html#streams-developer-guide-interactive-queries"><span class="std std-ref">interactive queries</span></a> against the table. When a
@@ -1485,6 +1484,14 @@
                         Depending on the operands, joins are either <a class="reference internal" href="#streams-developer-guide-dsl-windowing"><span class="std std-ref">windowed</span></a> joins or
                         non-windowed joins.</p>
                     <table border="1" class="docutils">
+                        <colgroup>
+                            <col width="12%" />
+                            <col width="6%" />
+                            <col width="7%" />
+                            <col width="7%" />
+                            <col width="7%" />
+                            <col width="61%" />
+                        </colgroup>
                         <thead valign="bottom">
                         <tr class="row-odd"><th class="head">Join operands</th>
                             <th class="head">Type</th>
diff --git a/10/streams/developer-guide/processor-api.html b/10/streams/developer-guide/processor-api.html
index 6719ad1..fdf6c86 100644
--- a/10/streams/developer-guide/processor-api.html
+++ b/10/streams/developer-guide/processor-api.html
@@ -140,8 +140,8 @@
 
   <span class="nd">@Override</span>
   <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</span> <span class="o">{</span>
-      <span class="c1">// close the key-value store</span>
-      <span class="n">kvStore</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
+      <span class="c1">// close any resources managed by this processor</span>
+      <span class="c1">// Note: Do not close any StateStores as these are managed by the library</span>
   <span class="o">}</span>
 
 <span class="o">}</span>
diff --git a/10/streams/index.html b/10/streams/index.html
index 1a08b69..b39a7d3 100644
--- a/10/streams/index.html
+++ b/10/streams/index.html
@@ -15,7 +15,6 @@
 <script>
   <!--#include virtual="../js/templateData.js" -->
 </script>
-
 <script id="streams-template" type="text/x-handlebars-template">
   <h1>Kafka Streams</h1>
        <div class="sub-nav-sticky">
@@ -79,10 +78,9 @@
            <div class="first__app__cta">
                <a href="/{{version}}/documentation/streams/tutorial" class="first__app__btn">Write your first app</a>
            </div>
-       </div>  
-       <hr class="separator" id="streams-use-cases">
-        <h3 class="stream__text streams-link">Streams API use cases <a id="streams-use-case" href="#streams-use-cases"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-
+       </div>
+       <hr class="separator"> 
+        <h3 class="stream__text">Streams API use cases</h3>
          <div class="customers__grid">
            <div class="customer__grid">
              <div class="customer__item streams_logo_grid streams__ny__grid">
@@ -316,27 +314,8 @@
 </div>
 <!--#include virtual="../../includes/_footer.htm" -->
 <script>
-
   $(function() {
-
-
-         $('.streams-link').mouseenter(function(){
-              $('#streams-use-case').css('visibility','visible');
-         });
-
-          $('.streams-link').mouseleave(function(){
-              $('#streams-use-case').css('visibility','hidden');
-         });
-
-          $('#streams-use-case').click(function(){
-              $('#streams-use-case').css('visibility','hidden');
-         });
-
-
-          $('#streams-use-case').mouseenter(function(){
-              $('#streams-use-case').css('visibility','visible');
-         });
-
+         
          // Show selected style on nav item
          $('.b-nav__streams').addClass('selected');
     
diff --git a/10/streams/upgrade-guide.html b/10/streams/upgrade-guide.html
index 87d34f1..58cb91c 100644
--- a/10/streams/upgrade-guide.html
+++ b/10/streams/upgrade-guide.html
@@ -34,28 +34,46 @@
     </div>
 
     <p>
-        If you want to upgrade from 0.11.0.x to 1.0.0 you don't need to do any code changes as the public API is fully backward compatible.
+        If you want to upgrade from 0.10.2.x or 0.11.0.x to 1.0.x you don't need to do any code changes as the public API is fully backward compatible.
         However, some public APIs were deprecated and thus it is recommended to update your code eventually to allow for future upgrades.
-        See <a href="#streams_api_changes_100">below</a> a complete list of 1.0.0 API and semantic changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
+        See below a complete list of <a href="#streams_api_changes_100">1.0</a> and <a href="#streams_api_changes_0110">0.11.0</a> API
+        and semantic changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
+        Additionally, Streams API 1.0.x requires broker on-disk message format version 0.10 or higher; thus, you need to make sure that the message
+        format is configured correctly before you upgrade your Kafka Streams application.
     </p>
 
     <p>
-        If you want to upgrade from 0.10.2.x to 0.11.0 you don't need to do any code changes as the public API is fully backward compatible.
-        However, some configuration parameters were deprecated and thus it is recommended to update your code eventually to allow for future upgrades.
-        See <a href="#streams_api_changes_0110">below</a> a complete list of 0.11.0 API and semantic changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
+        If you want to upgrade from 0.10.1.x to 1.0.x see the Upgrade Sections for <a href="/{{version}}/documentation/#upgrade_1020_streams"><b>0.10.2</b></a>,
+        <a href="/{{version}}/documentation/#upgrade_1100_streams"><b>0.11.0</b></a>, and
+        <a href="/{{version}}/documentation/#upgrade_100_streams"><b>1.0</b></a>.
+        Note, that a brokers on-disk message format must be on version 0.10 or higher to run a Kafka Streams application version 1.0 or higher.
+        See below a complete list of <a href="#streams_api_changes_0102">0.10.2</a>, <a href="#streams_api_changes_0110">0.11.0</a>,
+        and <a href="#streams_api_changes_100">1.0</a> API and semantical changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
     </p>
 
     <p>
-        If you want to upgrade from 0.10.1.x to 0.10.2, see the <a href="/{{version}}/documentation/#upgrade_1020_streams"><b>Upgrade Section for 0.10.2</b></a>.
-        It highlights incompatible changes you need to consider to upgrade your code and application.
-        See <a href="#streams_api_changes_0102">below</a> a complete list of 0.10.2 API and semantic changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
-    </p>
-
-    <p>
-        If you want to upgrade from 0.10.0.x to 0.10.1, see the <a href="/{{version}}/documentation/#upgrade_1010_streams"><b>Upgrade Section for 0.10.1</b></a>.
-        It highlights incompatible changes you need to consider to upgrade your code and application.
-        See <a href="#streams_api_changes_0101">below</a> a complete list of 0.10.1 API changes that allow you to advance your application and/or simplify your code base, including the usage of new features.
+        Upgrading from 0.10.0.x to 1.0.x directly is also possible.
+        Note, that a brokers must be on version 0.10.1 or higher and on-disk message format must be on version 0.10 or higher
+        to run a Kafka Streams application version 1.0 or higher.
+        See <a href="#streams_api_changes_0101">Streams API changes in 0.10.1</a>, <a href="#streams_api_changes_0102">Streams API changes in 0.10.2</a>,
+        <a href="#streams_api_changes_0110">Streams API changes in 0.11.0</a>, and <a href="#streams_api_changes_100">Streams API changes in 1.0</a>
+        for a complete list of API changes.
+        Upgrading to 1.0.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+        (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+        As an alternative, an offline upgrade is also possible.
     </p>
+    <ul>
+        <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 1.0.2</li>
+        <li> bounce each instance of your application once </li>
+        <li> prepare your newly deployed 1.0.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li>
+        <li> bounce each instance of your application once more to complete the upgrade </li>
+    </ul>
+    <p> Upgrading from 0.10.0.x to 1.0.0 or 1.0.1 requires an offline upgrade (rolling bounce upgrade is not supported) </p>
+    <ul>
+        <li> stop all old (0.10.0.x) application instances </li>
+        <li> update your code and swap old code and jar file with new code and new jar file </li>
+        <li> restart all new (1.0.0 or 1.0.1) application instances </li>
+    </ul>
 
     <h3><a id="streams_api_changes_100" href="#streams_api_changes_100">Streams API changes in 1.0.0</a></h3>
 
diff --git a/10/upgrade.html b/10/upgrade.html
index caf8e1c..2d53cd5 100644
--- a/10/upgrade.html
+++ b/10/upgrade.html
@@ -129,17 +129,77 @@
          be used if the SaslHandshake request version is greater than 0. </li>
 </ul>
 
-<h5><a id="upgrade_100_streams" href="#upgrade_100_streams">Upgrading a 1.0.0 Kafka Streams Application</a></h5>
+<h5><a id="upgrade_100_streams_from_0110" href="#upgrade_100_streams_from_0110">Upgrading a 0.11.0 Kafka Streams Application</a></h5>
 <ul>
     <li> Upgrading your Streams application from 0.11.0 to 1.0.0 does not require a broker upgrade.
-        A Kafka Streams 1.0.0 application can connect to 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
-        However, Kafka Streams 1.0 requires 0.10 message format or newer and does not work with older message formats. </li>
+         A Kafka Streams 1.0.0 application can connect to 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
+         However, Kafka Streams 1.0 requires 0.10 message format or newer and does not work with older message formats. </li>
     <li> If you are monitoring on streams metrics, you will need make some changes to the metrics names in your reporting and monitoring code, because the metrics sensor hierarchy was changed. </li>
     <li> There are a few public APIs including <code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code> and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being deprecated by new APIs.
-        We recommend making corresponding code changes, which should be very minor since the new APIs look quite similar, when you upgrade.
+         We recommend making corresponding code changes, which should be very minor since the new APIs look quite similar, when you upgrade.
     <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams API changes in 1.0.0</a> for more details. </li>
 </ul>
 
+<h5><a id="upgrade_100_streams_from_0102" href="#upgrade_100_streams_from_0102">Upgrading a 0.10.2 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.2 to 1.0 does not require a broker upgrade.
+         A Kafka Streams 1.0 application can connect to 1.0, 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+    <li> If you are monitoring on streams metrics, you will need make some changes to the metrics names in your reporting and monitoring code, because the metrics sensor hierarchy was changed. </li>
+    <li> There are a few public APIs including <code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code> and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being deprecated by new APIs.
+         We recommend making corresponding code changes, which should be very minor since the new APIs look quite similar, when you upgrade.
+    <li> If you specify customized <code>key.serde</code>, <code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is recommended to use their replaced configure parameter as these configs are deprecated. </li>
+    <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams API changes in 0.11.0</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_100_streams_from_0101" href="#upgrade_1100_streams_from_0101">Upgrading a 0.10.1 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.1 to 1.0 does not require a broker upgrade.
+         A Kafka Streams 1.0 application can connect to 1.0, 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+    <li> You need to recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+    <li> If you are monitoring on streams metrics, you will need make some changes to the metrics names in your reporting and monitoring code, because the metrics sensor hierarchy was changed. </li>
+    <li> There are a few public APIs including <code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code> and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being deprecated by new APIs.
+         We recommend making corresponding code changes, which should be very minor since the new APIs look quite similar, when you upgrade.
+    <li> If you specify customized <code>key.serde</code>, <code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is recommended to use their replaced configure parameter as these configs are deprecated. </li>
+    <li> If you use a custom (i.e., user implemented) timestamp extractor, you will need to update this code, because the <code>TimestampExtractor</code> interface was changed. </li>
+    <li> If you register custom metrics, you will need to update this code, because the <code>StreamsMetric</code> interface was changed. </li>
+    <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams API changes in 1.0.0</a>,
+         <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams API changes in 0.11.0</a> and
+         <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_100_streams_from_0100" href="#upgrade_100_streams_from_0100">Upgrading a 0.10.0 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.0 to 1.0 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 1.0 application can only connect to 0.1, 0.11.0, 0.10.2, or 0.10.1 brokers. </li>
+    <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams API changes in 1.0.0</a>,
+         <a href="/{{version}}/documentation/streams#streams_api_changes_0110">Streams API changes in 0.11.0</a>,
+         <a href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API changes in 0.10.2</a>, and
+         <a href="/{{version}}/documentation/streams#streams_api_changes_0101">Streams API changes in 0.10.1</a> for more details).
+         Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+    <li> Upgrading from 0.10.0.x to 1.0.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+        (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+        As an alternative, an offline upgrade is also possible.
+        <ul>
+            <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.11.0.3 </li>
+            <li> bounce each instance of your application once </li>
+            <li> prepare your newly deployed 1.0.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li>
+            <li> bounce each instance of your application once more to complete the upgrade </li>
+        </ul>
+    </li>
+    <li> Upgrading from 0.10.0.x to 1.0.0 or 1.0.1 requires an offline upgrade (rolling bounce upgrade is not supported)
+        <ul>
+            <li> stop all old (0.10.0.x) application instances </li>
+            <li> update your code and swap old code and jar file with new code and new jar file </li>
+            <li> restart all new (1.0.0 or 1.0.1) application instances </li>
+        </ul>
+    </li>
+</ul>
+
+<h5><a id="upgrade_102_notable" href="#upgrade_102_notable">Notable changes in 1.0.2</a></h5>
+<ul>
+    <li> New Kafka Streams configuration parameter <code>upgrade.from</code> added that allows rolling bounce upgrade from version 0.10.0.x </li>
+    <li> See the <a href="/{{version}}/documentation/streams/upgrade-guide.html"><b>Kafka Streams upgrade guide</b></a> for details about this new config.
+</ul>
+
 <h4><a id="upgrade_11_0_0" href="#upgrade_11_0_0">Upgrading from 0.8.x, 0.9.x, 0.10.0.x, 0.10.1.x or 0.10.2.x to 0.11.0.0</a></h4>
 <p>Kafka 0.11.0.0 introduces a new message format version as well as wire protocol changes. By following the recommended rolling upgrade plan below,
   you guarantee no downtime during the upgrade. However, please review the <a href="#upgrade_1100_notable">notable changes in 0.11.0.0</a> before upgrading.
@@ -188,11 +248,55 @@
 <h5><a id="upgrade_1100_streams" href="#upgrade_1100_streams">Upgrading a 0.10.2 Kafka Streams Application</a></h5>
 <ul>
     <li> Upgrading your Streams application from 0.10.2 to 0.11.0 does not require a broker upgrade.
-        A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+         A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
     <li> If you specify customized <code>key.serde</code>, <code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is recommended to use their replaced configure parameter as these configs are deprecated. </li>
     <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams API changes in 0.11.0</a> for more details. </li>
 </ul>
 
+<h5><a id="upgrade_1100_streams_from_0101" href="#upgrade_1100_streams_from_0101">Upgrading a 0.10.1 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.1 to 0.11.0 does not require a broker upgrade.
+         A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+    <li> You need to recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+    <li> If you specify customized <code>key.serde</code>, <code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is recommended to use their replaced configure parameter as these configs are deprecated. </li>
+    <li> If you use a custom (i.e., user implemented) timestamp extractor, you will need to update this code, because the <code>TimestampExtractor</code> interface was changed. </li>
+    <li> If you register custom metrics, you will need to update this code, because the <code>StreamsMetric</code> interface was changed. </li>
+    <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams API changes in 0.11.0</a> and
+         <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_1100_streams_from_0100" href="#upgrade_1100_streams_from_0100">Upgrading a 0.10.0 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.0 to 0.11.0 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.11.0 application can only connect to 0.11.0, 0.10.2, or 0.10.1 brokers. </li>
+    <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams#streams_api_changes_0110">Streams API changes in 0.11.0</a>,
+         <a href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API changes in 0.10.2</a>, and
+         <a href="/{{version}}/documentation/streams#streams_api_changes_0101">Streams API changes in 0.10.1</a> for more details).
+         Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+    <li> Upgrading from 0.10.0.x to 0.11.0.3 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+        (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+        As an alternative, an offline upgrade is also possible.
+        <ul>
+            <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.11.0.3 </li>
+            <li> bounce each instance of your application once </li>
+            <li> prepare your newly deployed 0.11.0.3 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li>
+            <li> bounce each instance of your application once more to complete the upgrade </li>
+        </ul>
+    </li>
+    <li> Upgrading from 0.10.0.x to 0.11.0.0, 0.11.0.1, or 0.11.0.2 requires an offline upgrade (rolling bounce upgrade is not supported)
+        <ul>
+            <li> stop all old (0.10.0.x) application instances </li>
+            <li> update your code and swap old code and jar file with new code and new jar file </li>
+            <li> restart all new (0.11.0.0 , 0.11.0.1, or 0.11.0.2) application instances </li>
+        </ul>
+    </li>
+</ul>
+
+<h5><a id="upgrade_1103_notable" href="#upgrade_1103_notable">Notable changes in 0.11.0.3</a></h5>
+<ul>
+    <li> New Kafka Streams configuration parameter <code>upgrade.from</code> added that allows rolling bounce upgrade from version 0.10.0.x </li>
+    <li> See the <a href="/{{version}}/documentation/streams/upgrade-guide.html"><b>Kafka Streams upgrade guide</b></a> for details about this new config.
+</ul>
+
 <h5><a id="upgrade_1100_notable" href="#upgrade_1100_notable">Notable changes in 0.11.0.0</a></h5>
 <ul>
     <li>Unclean leader election is now disabled by default. The new default favors durability over availability. Users who wish to
@@ -343,6 +447,35 @@ Kafka cluster before upgrading your clients. Version 0.10.2 brokers support 0.8.
     <li> See <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details. </li>
 </ul>
 
+<h5><a id="upgrade_1020_streams_from_0100" href="#upgrade_1020_streams_from_0100">Upgrading a 0.10.0 Kafka Streams Application</a></h5>
+<ul>
+    <li> Upgrading your Streams application from 0.10.0 to 0.10.2 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.2 application can only connect to 0.10.2 or 0.10.1 brokers. </li>
+    <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API changes in 0.10.2</a> for more details).
+         Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+    <li> Upgrading from 0.10.0.x to 0.10.2.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+         (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+         As an alternative, an offline upgrade is also possible.
+        <ul>
+            <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.10.2.2 </li>
+            <li> bounce each instance of your application once </li>
+            <li> prepare your newly deployed 0.10.2.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li>
+            <li> bounce each instance of your application once more to complete the upgrade </li>
+        </ul>
+    </li>
+    <li> Upgrading from 0.10.0.x to 0.10.2.0 or 0.10.2.1 requires an offline upgrade (rolling bounce upgrade is not supported)
+        <ul>
+            <li> stop all old (0.10.0.x) application instances </li>
+            <li> update your code and swap old code and jar file with new code and new jar file </li>
+            <li> restart all new (0.10.2.0 or 0.10.2.1) application instances </li>
+        </ul>
+    </li>
+</ul>
+
+<h5><a id="upgrade_10202_notable" href="#upgrade_10202_notable">Notable changes in 0.10.2.2</a></h5>
+<ul>
+    <li> New configuration parameter <code>upgrade.from</code> added that allows rolling bounce upgrade from version 0.10.0.x </li>
+</ul>
+
 <h5><a id="upgrade_10201_notable" href="#upgrade_10201_notable">Notable changes in 0.10.2.1</a></h5>
 <ul>
   <li> The default values for two configurations of the StreamsConfig class were changed to improve the resiliency of Kafka Streams applications. The internal Kafka Streams producer <code>retries</code> default value was changed from 0 to 10. The internal Kafka Streams consumer <code>max.poll.interval.ms</code>  default value was changed from 300000 to <code>Integer.MAX_VALUE</code>.
@@ -421,6 +554,25 @@ only support 0.10.1.x or later brokers while 0.10.1.x brokers also support older
     <li> Upgrading your Streams application from 0.10.0 to 0.10.1 does require a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.1 application can only connect to 0.10.1 brokers. </li>
     <li> There are couple of API changes, that are not backward compatible (cf. <a href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0101">Streams API changes in 0.10.1</a> for more details).
          Thus, you need to update and recompile your code. Just swapping the Kafka Streams library jar file will not work and will break your application. </li>
+<!-- TODO: add when 0.10.1.2 is released
+    <li> Upgrading from 0.10.0.x to 0.10.1.2 requires two rolling bounces with config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+         (cf. <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+         As an alternative, an offline upgrade is also possible.
+        <ul>
+            <li> prepare your application instances for a rolling bounce and make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for new version 0.10.1.2 </li>
+            <li> bounce each instance of your application once </li>
+            <li> prepare your newly deployed 0.10.1.2 application instances for a second round of rolling bounces; make sure to remove the value for config <code>upgrade.mode</code> </li>
+            <li> bounce each instance of your application once more to complete the upgrade </li>
+        </ul>
+    </li>
+-->
+    <li> Upgrading from 0.10.0.x to 0.10.1.0 or 0.10.1.1 requires an offline upgrade (rolling bounce upgrade is not supported)
+        <ul>
+            <li> stop all old (0.10.0.x) application instances </li>
+            <li> update your code and swap old code and jar file with new code and new jar file </li>
+            <li> restart all new (0.10.1.0 or 0.10.1.1) application instances </li>
+        </ul>
+    </li>
 </ul>
 
 <h5><a id="upgrade_1010_notable" href="#upgrade_1010_notable">Notable changes in 0.10.1.0</a></h5>
diff --git a/downloads.html b/downloads.html
index 13bd2ed..b0731f5 100644
--- a/downloads.html
+++ b/downloads.html
@@ -3,18 +3,17 @@
 <div class="content">
 	<!--#include virtual="includes/_nav.htm" -->
 	<div class="right">
-		<h1>Download</h1>
+    <h1>Download</h1>
 
     <p>1.1.0 is the latest release. The current stable version is 1.1.0.</p>
 
-
     <p>
     You can verify your download by following these <a href="https://www.apache.org/info/verification.html">procedures</a> and using these <a href="https://kafka.apache.org/KEYS">KEYS</a>.
     </p>
 
-   <span id="1.1.0"></span>
-   <h3 class="download-version">1.1.0<a href="#1.1.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="1.1.0"></span>
+    <h3 class="download-version">1.1.0<a href="#1.1.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released March 28, 2018
@@ -52,35 +51,55 @@
             For more information, please read the detailed <a href="https://www.apache.org/dist/kafka/1.1.0/RELEASE_NOTES.html">Release Notes</a>.
         </p>
 
-   <span id="1.0.1"></span>
-   <h3 class="download-version">1.0.1<a href="#1.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+
+    <span id="1.0.2"></span>
+    <h3 class="download-version">1.0.2<a href="#1.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+        <ul>
+            <li>
+                Released July 8th, 2018
+            </li>
+            <li>
+                <a href="https://www.apache.org/dist/kafka/1.0.2/RELEASE_NOTES.html">Release Notes</a>
+            </li>
+            <li>
+                Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka-1.0.2-src.tgz">kafka-1.0.2-src.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.2/kafka-1.0.2-src.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.2/kafka-1.0.2-src.tgz.sha512">sha512</a>)
+            </li>
+            <li>
+                Binary downloads:
+                <ul>
+                    <li>Scala 2.11 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka_2.11-1.0.2.tgz">kafka_2.11-1.0.2.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.11-1.0.2.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.11-1.0.2.tgz.sha512">sha512</a>)</li>
+                    <li>Scala 2.12 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka_2.12-1.0.2.tgz">kafka_2.12-1.0.2.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz.sha512">sha512</a>)</li>
+                </ul>
+                We build for multiple versions of Scala. This only matters if you are using Scala and you want a version built for the same Scala version you use. Otherwise any version should work (2.11 is recommended).
+            </li>
+        </ul>
 
 
+    <span id="1.0.1"></span>
+    <h3 class="download-version">1.0.1<a href="#1.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released March 5, 2018
             </li>
             <li>
-                <a href="https://www.apache.org/dist/kafka/1.0.1/RELEASE_NOTES.html">Release Notes</a>
+                <a href="https://archive.apache.org/dist/kafka/1.0.1/RELEASE_NOTES.html">Release Notes</a>
             </li>
             <li>
-                Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka-1.0.1-src.tgz">kafka-1.0.1-src.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.sha512">sha512</a>)
+                Source download: <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz">kafka-1.0.1-src.tgz</a> (<a href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.sha512">sha512</a>)
             </li>
             <li>
                 Binary downloads:
                 <ul>
-                    <li>Scala 2.11 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka_2.11-1.0.1.tgz">kafka_2.11-1.0.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.sha512">sha512</a>)</li>
-                    <li>Scala 2.12 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka_2.12-1.0.1.tgz">kafka_2.12-1.0.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.sha512">sha512</a>)</li>
+                    <li>Scala 2.11 &nbsp;- <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz">kafka_2.11-1.0.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.sha512">sha512</a>)</li>
+                    <li>Scala 2.12 &nbsp;- <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz">kafka_2.12-1.0.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.sha512">sha512</a>)</li>
                 </ul>
                 We build for multiple versions of Scala. This only matters if you are using Scala and you want a version built for the same Scala version you use. Otherwise any version should work (2.11 is recommended).
             </li>
         </ul>
 
-      <span id="1.0.0"></span>
-      <h3 class="download-version">1.0.0<a href="#1.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-      
-
 
+    <span id="1.0.0"></span>
+    <h3 class="download-version">1.0.0<a href="#1.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released November 1, 2017
@@ -127,8 +146,9 @@
             For more information, please read the detailed <a href="https://www.apache.org/dist/kafka/1.0.0/RELEASE_NOTES.html">Release Notes</a>.
         </p>
 
-        <span id="0.11.0.3"></span>
-        <h3 class="download-version">0.11.0.3<a href="#0.11.0.3"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+
+    <span id="0.11.0.3"></span>
+    <h3 class="download-version">0.11.0.3<a href="#0.11.0.3"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released July 2ed, 2018
@@ -149,8 +169,9 @@
             </li>
         </ul>
 
-        <span id="0.11.0.2"></span>
-        <h3 class="download-version">0.11.0.2<a href="#0.11.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+
+    <span id="0.11.0.2"></span>
+    <h3 class="download-version">0.11.0.2<a href="#0.11.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released November 17, 2017
@@ -171,9 +192,8 @@
             </li>
         </ul>
 
-        <span id="0.11.0.1"></span>
-        <h3 class="download-version">0.11.0.1<a href="#0.11.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-
+    <span id="0.11.0.1"></span>
+    <h3 class="download-version">0.11.0.1<a href="#0.11.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released September 13, 2017
@@ -194,9 +214,9 @@
             </li>
         </ul>
 
-        <span id="0.11.0.0"></span>
-        <h3 class="download-version">0.11.0.0<a href="#0.11.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-    
+
+    <span id="0.11.0.0"></span>
+    <h3 class="download-version">0.11.0.0<a href="#0.11.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released June 28, 2017
@@ -217,9 +237,9 @@
             </li>
         </ul>
 
-        <span id="0.10.2.2"></span>
-        <h3 class="download-version">0.10.2.2<a href="#0.10.2.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.10.2.2"></span>
+    <h3 class="download-version">0.10.2.2<a href="#0.10.2.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released July 2nd, 2018
@@ -244,9 +264,9 @@
             </li>
         </ul>
 
-        <span id="0.10.2.1"></span>
-        <h3 class="download-version">0.10.2.1<a href="#0.10.2.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.10.2.1"></span>
+    <h3 class="download-version">0.10.2.1<a href="#0.10.2.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released April 26, 2017
@@ -271,9 +291,9 @@
             </li>
         </ul>
 
-        <span id="0.10.2.0"></span>
-        <h3 class="download-version">0.10.2.0<a href="#0.10.2.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-       
+
+    <span id="0.10.2.0"></span>
+    <h3 class="download-version">0.10.2.0<a href="#0.10.2.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released February 21, 2017
@@ -298,9 +318,9 @@
             </li>
         </ul>
 
-        <span id="0.10.1.1"></span>
-        <h3 class="download-version">0.10.1.1<a href="#0.10.1.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-      
+
+    <span id="0.10.1.1"></span>
+    <h3 class="download-version">0.10.1.1<a href="#0.10.1.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released December 20, 2016
@@ -325,9 +345,9 @@
             </li>
         </ul>
 
-       <span id="0.10.1.0"></span>
-       <h3 class="download-version">0.10.1.0<a href="#0.10.1.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.10.1.0"></span>
+    <h3 class="download-version">0.10.1.0<a href="#0.10.1.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released October 20, 2016
@@ -350,9 +370,9 @@
             </li>
         </ul>
 
-        <span id="0.10.0.1"></span>
-        <h3 class="download-version">0.10.0.1<a href="#0.10.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.10.0.1"></span>
+    <h3 class="download-version">0.10.0.1<a href="#0.10.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released August 10, 2016
@@ -375,9 +395,9 @@
             </li>
         </ul>
 
-        <span id="0.10.0.0"></span>
-        <h3 class="download-version">0.10.0.0<a href="#0.10.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.10.0.0"></span>
+    <h3 class="download-version">0.10.0.0<a href="#0.10.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released May 22, 2016
@@ -400,9 +420,9 @@
             </li>
         </ul>
 
-        <span id="0.9.0.1"></span>
-        <h3 class="download-version">0.9.0.1<a href="#0.9.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.9.0.1"></span>
+    <h3 class="download-version">0.9.0.1<a href="#0.9.0.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released February 19, 2016
@@ -425,9 +445,9 @@
             </li>
         </ul>
 
-        <span id="0.9.0.0"></span>
-        <h3 class="download-version">0.9.0.0<a href="#0.9.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-      
+
+    <span id="0.9.0.0"></span>
+    <h3 class="download-version">0.9.0.0<a href="#0.9.0.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released November 23, 2015
@@ -450,9 +470,9 @@
             </li>
         </ul>
 
-        <span id="0.8.2.2"></span>
-        <h3 class="download-version">0.8.2.2<a href="#0.8.2.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.2.2"></span>
+    <h3 class="download-version">0.8.2.2<a href="#0.8.2.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released October 2, 2015
@@ -479,9 +499,9 @@
             </li>
         </ul>
 
-       <span id="0.8.2.1"></span>
-       <h3 class="download-version">0.8.0.2<a href="#0.8.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.2.1"></span>
+    <h3 class="download-version">0.8.0.2<a href="#0.8.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released March 11, 2015
@@ -508,9 +528,9 @@
             </li>
         </ul>
        
-        <span id="0.8.2.0"></span>
-        <h3 class="download-version">0.8.2.0<a href="#0.8.2.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.2.0"></span>
+    <h3 class="download-version">0.8.2.0<a href="#0.8.2.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released February 2, 2015
@@ -537,9 +557,9 @@
             </li>
         </ul>
 
-        <span id="0.8.2-beta"></span>
-        <h3 class="download-version">0.8.2-beta<a href="#0.8.2-beta"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.2-beta"></span>
+    <h3 class="download-version">0.8.2-beta<a href="#0.8.2-beta"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released October 28, 2014
@@ -566,9 +586,9 @@
             </li>
         </ul>
 
-        <span id="0.8.1.1"></span>
-        <h3 class="download-version">0.8.1.1 Release<a href="#0.8.1.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
-     
+
+    <span id="0.8.1.1"></span>
+    <h3 class="download-version">0.8.1.1 Release<a href="#0.8.1.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released April 29, 2014
@@ -595,9 +615,9 @@
             </li>
         </ul>
 
-        <span id="0.8.1"></span>
-        <h3 class="download-version">0.8.1 Release<a href="#0.8.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.1"></span>
+    <h3 class="download-version">0.8.1 Release<a href="#0.8.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released March 12, 2014
@@ -626,9 +646,9 @@
             </li>
         </ul>
 
-        <span id="0.8.0"></span>
-        <h3 class="download-version">0.8.0 Release<a href="#0.11.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.0"></span>
+    <h3 class="download-version">0.8.0 Release<a href="#0.11.0.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released December 3, 2013
@@ -644,9 +664,9 @@
             </li>
         </ul>
 
-        <span id="0.8.0-Beta1"></span>
-        <h3 class="download-version">0.8.0 Beta1 Release<a href="#0.8.0-Beta1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.8.0-Beta1"></span>
+    <h3 class="download-version">0.8.0 Beta1 Release<a href="#0.8.0-Beta1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released June 28, 2013
@@ -662,9 +682,9 @@
             </li>
         </ul>
 
-        <span id="0.7.2"></span>
-        <h3 class="download-version">0.7.2 Release<a href="#0.7.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.7.2"></span>
+    <h3 class="download-version">0.7.2 Release<a href="#0.7.2"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released October 10, 2012
@@ -677,9 +697,9 @@
             </li>
         </ul>
 
-        <span id="0.7.1"></span>
-        <h3 class="download-version">0.7.1 Release<a href="#0.7.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.7.1"></span>
+    <h3 class="download-version">0.7.1 Release<a href="#0.7.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released June 27, 2012
@@ -692,9 +712,9 @@
             </li>
         </ul>
 
-        <span id="0.7.0"></span>
-        <h3 class="download-version">0.7.0 Release<a href="#0.7.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
 
+    <span id="0.7.0"></span>
+    <h3 class="download-version">0.7.0 Release<a href="#0.7.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
         <ul>
             <li>
                 Released January 4, 2012


Mime
View raw message