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 <[email protected]>
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

Reply via email to