---
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.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>
