---
layout: page
title: Documentation
---
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<h4 id="latest">Latest Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/latest">Documentation</a></li>
  <li><a href="../learn/tutorials/latest">Tutorials</a></li>
  <li><a href="../startup/hello-samza/latest">Hello Samza</a></li>
</ul>

<h4 id="1.6.0">1.6.0 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/1.6.0">Documentation</a></li>
  <li><a href="../learn/tutorials/1.6.0">Tutorials</a></li>
  <li><a href="../startup/hello-samza/1.6.0">Hello Samza</a></li>
</ul>

<h4 id="1.5.1">1.5.1 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/1.5.1">Documentation</a></li>
  <li><a href="../learn/tutorials/1.5.1">Tutorials</a></li>
  <li><a href="../startup/hello-samza/1.5.1">Hello Samza</a></li>
</ul>

<h4 id="1.5">1.5 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/1.5.0">Documentation</a></li>
    <li><a href="../learn/tutorials/1.5.0">Tutorials</a></li>
    <li><a href="../startup/hello-samza/1.5.0">Hello Samza</a></li>
</ul>

<h4 id="1.4">1.4 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/1.4.0">Documentation</a></li>
    <li><a href="../learn/tutorials/1.4.0">Tutorials</a></li>
    <li><a href="../startup/hello-samza/1.4.0">Hello Samza</a></li>
</ul>

<h4 id="1.3">1.3 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/1.3.0">Documentation</a></li>
    <li><a href="../learn/tutorials/1.3.0">Tutorials</a></li>
    <li><a href="../startup/hello-samza/1.3.0">Hello Samza</a></li>
</ul>

<h4 id="1.2">1.2 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/1.2.0">Documentation</a></li>
    <li><a href="../learn/tutorials/1.2.0">Tutorials</a></li>
    <li><a href="../startup/hello-samza/1.2.0">Hello Samza</a></li>
</ul>

<h4 id="14">14 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/0.14">Documentation</a></li>
    <li><a href="../learn/tutorials/0.14">Tutorials</a></li>
    <li><a href="../startup/hello-samza/0.14">Hello Samza</a></li>
</ul>

<h4 id="13">0.13 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.13">Documentation</a></li>
  <li><a href="../learn/tutorials/0.13">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.13">Hello Samza</a></li>
</ul>

<h4 id="12">0.12 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.12">Documentation</a></li>
  <li><a href="../learn/tutorials/0.12">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.12">Hello Samza</a></li>
</ul>

<h4 id="11">0.11 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.11">Documentation</a></li>
  <li><a href="../learn/tutorials/0.11">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.11">Hello Samza</a></li>
</ul>

<h4 id="10">0.10 Release</h4>

<ul class="documentation-list">
    <li><a href="../learn/documentation/0.10">Documentation</a></li>
    <li><a href="../learn/tutorials/0.10">Tutorials</a></li>
    <li><a href="../startup/hello-samza/0.10">Hello Samza</a></li>
</ul>

<h4 id="09">0.9 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.9">Documentation</a></li>
  <li><a href="../learn/tutorials/0.9">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.9">Hello Samza</a></li>
</ul>

<h4 id="08">0.8 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.8">Documentation</a></li>
  <li><a href="../learn/tutorials/0.8">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.8">Hello Samza</a></li>
</ul>

<h4 id="07">0.7 Release</h4>

<ul class="documentation-list">
  <li><a href="../learn/documentation/0.7.0">Documentation</a></li>
  <li><a href="../learn/tutorials/0.7.0">Tutorials</a></li>
  <li><a href="../startup/hello-samza/0.7.0">Hello Samza</a></li>
</ul>
