You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by ya...@apache.org on 2014/08/15 07:22:33 UTC

[06/39] SAMZA-259: Restructure documentation folders

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/overview-frame.html
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/overview-frame.html b/docs/learn/documentation/versioned/api/javadocs/overview-frame.html
new file mode 100644
index 0000000..e89dcb3
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/overview-frame.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_65) on Tue Aug 05 21:46:34 PDT 2014 -->
+<title>Overview List (samza-api 0.8.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<div class="indexHeader"><a href="allclasses-frame.html" target="packageFrame">All Classes</a></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/samza/package-frame.html" target="packageFrame">org.apache.samza</a></li>
+<li><a href="org/apache/samza/checkpoint/package-frame.html" target="packageFrame">org.apache.samza.checkpoint</a></li>
+<li><a href="org/apache/samza/config/package-frame.html" target="packageFrame">org.apache.samza.config</a></li>
+<li><a href="org/apache/samza/container/package-frame.html" target="packageFrame">org.apache.samza.container</a></li>
+<li><a href="org/apache/samza/container/grouper/stream/package-frame.html" target="packageFrame">org.apache.samza.container.grouper.stream</a></li>
+<li><a href="org/apache/samza/job/package-frame.html" target="packageFrame">org.apache.samza.job</a></li>
+<li><a href="org/apache/samza/metrics/package-frame.html" target="packageFrame">org.apache.samza.metrics</a></li>
+<li><a href="org/apache/samza/serializers/package-frame.html" target="packageFrame">org.apache.samza.serializers</a></li>
+<li><a href="org/apache/samza/storage/package-frame.html" target="packageFrame">org.apache.samza.storage</a></li>
+<li><a href="org/apache/samza/system/package-frame.html" target="packageFrame">org.apache.samza.system</a></li>
+<li><a href="org/apache/samza/system/chooser/package-frame.html" target="packageFrame">org.apache.samza.system.chooser</a></li>
+<li><a href="org/apache/samza/task/package-frame.html" target="packageFrame">org.apache.samza.task</a></li>
+<li><a href="org/apache/samza/util/package-frame.html" target="packageFrame">org.apache.samza.util</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/overview-summary.html b/docs/learn/documentation/versioned/api/javadocs/overview-summary.html
new file mode 100644
index 0000000..ffc8d6d
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/overview-summary.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_65) on Tue Aug 05 21:46:34 PDT 2014 -->
+<title>Overview (samza-api 0.8.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Overview (samza-api 0.8.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">samza-api 0.8.0-SNAPSHOT API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/package-summary.html">org.apache.samza</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/checkpoint/package-summary.html">org.apache.samza.checkpoint</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/config/package-summary.html">org.apache.samza.config</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/container/package-summary.html">org.apache.samza.container</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/container/grouper/stream/package-summary.html">org.apache.samza.container.grouper.stream</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/job/package-summary.html">org.apache.samza.job</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/metrics/package-summary.html">org.apache.samza.metrics</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/serializers/package-summary.html">org.apache.samza.serializers</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/storage/package-summary.html">org.apache.samza.storage</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/system/package-summary.html">org.apache.samza.system</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/system/chooser/package-summary.html">org.apache.samza.system.chooser</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/samza/task/package-summary.html">org.apache.samza.task</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/samza/util/package-summary.html">org.apache.samza.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/overview-tree.html b/docs/learn/documentation/versioned/api/javadocs/overview-tree.html
new file mode 100644
index 0000000..867af28
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/overview-tree.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_65) on Tue Aug 05 21:46:34 PDT 2014 -->
+<title>Class Hierarchy (samza-api 0.8.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Class Hierarchy (samza-api 0.8.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/samza/package-tree.html">org.apache.samza</a>, </li>
+<li><a href="org/apache/samza/checkpoint/package-tree.html">org.apache.samza.checkpoint</a>, </li>
+<li><a href="org/apache/samza/config/package-tree.html">org.apache.samza.config</a>, </li>
+<li><a href="org/apache/samza/container/package-tree.html">org.apache.samza.container</a>, </li>
+<li><a href="org/apache/samza/container/grouper/stream/package-tree.html">org.apache.samza.container.grouper.stream</a>, </li>
+<li><a href="org/apache/samza/job/package-tree.html">org.apache.samza.job</a>, </li>
+<li><a href="org/apache/samza/metrics/package-tree.html">org.apache.samza.metrics</a>, </li>
+<li><a href="org/apache/samza/serializers/package-tree.html">org.apache.samza.serializers</a>, </li>
+<li><a href="org/apache/samza/storage/package-tree.html">org.apache.samza.storage</a>, </li>
+<li><a href="org/apache/samza/system/package-tree.html">org.apache.samza.system</a>, </li>
+<li><a href="org/apache/samza/system/chooser/package-tree.html">org.apache.samza.system.chooser</a>, </li>
+<li><a href="org/apache/samza/task/package-tree.html">org.apache.samza.task</a>, </li>
+<li><a href="org/apache/samza/util/package-tree.html">org.apache.samza.util</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">org.apache.samza.system.chooser.<a href="org/apache/samza/system/chooser/BaseMessageChooser.html" title="class in org.apache.samza.system.chooser"><span class="strong">BaseMessageChooser</span></a> (implements org.apache.samza.system.chooser.<a href="org/apache/samza/system/chooser/MessageChooser.html" title="interface in org.apache.samza.system.chooser">MessageChooser</a>)</li>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/BlockingEnvelopeMap.html" title="class in org.apache.samza.util"><span class="strong">BlockingEnvelopeMap</span></a> (implements org.apache.samza.system.<a href="org/apache/samza/system/SystemConsumer.html" title="interface in org.apache.samza.system">SystemConsumer</a>)</li>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/BlockingEnvelopeMap.BlockingEnvelopeMapMetrics.html" title="class in org.apache.samza.util"><span class="strong">BlockingEnvelopeMap.BlockingEnvelopeMapMetrics</span></a></li>
+<li type="circle">org.apache.samza.checkpoint.<a href="org/apache/samza/checkpoint/Checkpoint.html" title="class in org.apache.samza.checkpoint"><span class="strong">Checkpoint</span></a></li>
+<li type="circle">org.apache.samza.job.<a href="org/apache/samza/job/CommandBuilder.html" title="class in org.apache.samza.job"><span class="strong">CommandBuilder</span></a></li>
+<li type="circle">org.apache.samza.config.<a href="org/apache/samza/config/Config.html" title="class in org.apache.samza.config"><span class="strong">Config</span></a> (implements java.util.Map&lt;K,V&gt;)
+<ul>
+<li type="circle">org.apache.samza.config.<a href="org/apache/samza/config/MapConfig.html" title="class in org.apache.samza.config"><span class="strong">MapConfig</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Counter.html" title="class in org.apache.samza.metrics"><span class="strong">Counter</span></a> (implements org.apache.samza.metrics.<a href="org/apache/samza/metrics/Metric.html" title="interface in org.apache.samza.metrics">Metric</a>)</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Gauge.html" title="class in org.apache.samza.metrics"><span class="strong">Gauge</span></a>&lt;T&gt; (implements org.apache.samza.metrics.<a href="org/apache/samza/metrics/Metric.html" title="interface in org.apache.samza.metrics">Metric</a>)
+<ul>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/BlockingEnvelopeMap.BufferGauge.html" title="class in org.apache.samza.util"><span class="strong">BlockingEnvelopeMap.BufferGauge</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/IncomingMessageEnvelope.html" title="class in org.apache.samza.system"><span class="strong">IncomingMessageEnvelope</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/MetricsVisitor.html" title="class in org.apache.samza.metrics"><span class="strong">MetricsVisitor</span></a></li>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/NoOpMetricsRegistry.html" title="class in org.apache.samza.util"><span class="strong">NoOpMetricsRegistry</span></a> (implements org.apache.samza.metrics.<a href="org/apache/samza/metrics/MetricsRegistry.html" title="interface in org.apache.samza.metrics">MetricsRegistry</a>)</li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/OutgoingMessageEnvelope.html" title="class in org.apache.samza.system"><span class="strong">OutgoingMessageEnvelope</span></a></li>
+<li type="circle">org.apache.samza.<a href="org/apache/samza/Partition.html" title="class in org.apache.samza"><span class="strong">Partition</span></a> (implements java.lang.Comparable&lt;T&gt;)</li>
+<li type="circle">org.apache.samza.container.<a href="org/apache/samza/container/SamzaContainerContext.html" title="class in org.apache.samza.container"><span class="strong">SamzaContainerContext</span></a></li>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/SinglePartitionWithoutOffsetsSystemAdmin.html" title="class in org.apache.samza.util"><span class="strong">SinglePartitionWithoutOffsetsSystemAdmin</span></a> (implements org.apache.samza.system.<a href="org/apache/samza/system/SystemAdmin.html" title="interface in org.apache.samza.system">SystemAdmin</a>)</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/SlidingTimeWindowReservoir.html" title="class in org.apache.samza.metrics"><span class="strong">SlidingTimeWindowReservoir</span></a> (implements org.apache.samza.metrics.<a href="org/apache/samza/metrics/Reservoir.html" title="interface in org.apache.samza.metrics">Reservoir</a>)</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Snapshot.html" title="class in org.apache.samza.metrics"><span class="strong">Snapshot</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStream.html" title="class in org.apache.samza.system"><span class="strong">SystemStream</span></a>
+<ul>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStreamPartition.html" title="class in org.apache.samza.system"><span class="strong">SystemStreamPartition</span></a> (implements java.lang.Comparable&lt;T&gt;)</li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStreamMetadata.html" title="class in org.apache.samza.system"><span class="strong">SystemStreamMetadata</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStreamMetadata.SystemStreamPartitionMetadata.html" title="class in org.apache.samza.system"><span class="strong">SystemStreamMetadata.SystemStreamPartitionMetadata</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStreamPartitionIterator.html" title="class in org.apache.samza.system"><span class="strong">SystemStreamPartitionIterator</span></a> (implements java.util.Iterator&lt;E&gt;)</li>
+<li type="circle">org.apache.samza.container.<a href="org/apache/samza/container/TaskName.html" title="class in org.apache.samza.container"><span class="strong">TaskName</span></a> (implements java.lang.Comparable&lt;T&gt;)</li>
+<li type="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li type="circle">java.lang.Exception
+<ul>
+<li type="circle">java.lang.RuntimeException
+<ul>
+<li type="circle">org.apache.samza.<a href="org/apache/samza/SamzaException.html" title="class in org.apache.samza"><span class="strong">SamzaException</span></a>
+<ul>
+<li type="circle">org.apache.samza.config.<a href="org/apache/samza/config/ConfigException.html" title="class in org.apache.samza.config"><span class="strong">ConfigException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Timer.html" title="class in org.apache.samza.metrics"><span class="strong">Timer</span></a> (implements org.apache.samza.metrics.<a href="org/apache/samza/metrics/Metric.html" title="interface in org.apache.samza.metrics">Metric</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.samza.checkpoint.<a href="org/apache/samza/checkpoint/CheckpointManager.html" title="interface in org.apache.samza.checkpoint"><span class="strong">CheckpointManager</span></a></li>
+<li type="circle">org.apache.samza.checkpoint.<a href="org/apache/samza/checkpoint/CheckpointManagerFactory.html" title="interface in org.apache.samza.checkpoint"><span class="strong">CheckpointManagerFactory</span></a></li>
+<li type="circle">org.apache.samza.util.<a href="org/apache/samza/util/Clock.html" title="interface in org.apache.samza.util"><span class="strong">Clock</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/ClosableTask.html" title="interface in org.apache.samza.task"><span class="strong">ClosableTask</span></a></li>
+<li type="circle">org.apache.samza.config.<a href="org/apache/samza/config/ConfigFactory.html" title="interface in org.apache.samza.config"><span class="strong">ConfigFactory</span></a></li>
+<li type="circle">org.apache.samza.config.<a href="org/apache/samza/config/ConfigRewriter.html" title="interface in org.apache.samza.config"><span class="strong">ConfigRewriter</span></a></li>
+<li type="circle">org.apache.samza.serializers.<a href="org/apache/samza/serializers/Deserializer.html" title="interface in org.apache.samza.serializers"><span class="strong">Deserializer</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.samza.serializers.<a href="org/apache/samza/serializers/Serde.html" title="interface in org.apache.samza.serializers"><span class="strong">Serde</span></a>&lt;T&gt; (also extends org.apache.samza.serializers.<a href="org/apache/samza/serializers/Serializer.html" title="interface in org.apache.samza.serializers">Serializer</a>&lt;T&gt;)</li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/InitableTask.html" title="interface in org.apache.samza.task"><span class="strong">InitableTask</span></a></li>
+<li type="circle">org.apache.samza.system.chooser.<a href="org/apache/samza/system/chooser/MessageChooser.html" title="interface in org.apache.samza.system.chooser"><span class="strong">MessageChooser</span></a></li>
+<li type="circle">org.apache.samza.system.chooser.<a href="org/apache/samza/system/chooser/MessageChooserFactory.html" title="interface in org.apache.samza.system.chooser"><span class="strong">MessageChooserFactory</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/MessageCollector.html" title="interface in org.apache.samza.task"><span class="strong">MessageCollector</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Metric.html" title="interface in org.apache.samza.metrics"><span class="strong">Metric</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/MetricsRegistry.html" title="interface in org.apache.samza.metrics"><span class="strong">MetricsRegistry</span></a>
+<ul>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/ReadableMetricsRegistry.html" title="interface in org.apache.samza.metrics"><span class="strong">ReadableMetricsRegistry</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/MetricsReporter.html" title="interface in org.apache.samza.metrics"><span class="strong">MetricsReporter</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/MetricsReporterFactory.html" title="interface in org.apache.samza.metrics"><span class="strong">MetricsReporterFactory</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/ReadableMetricsRegistryListener.html" title="interface in org.apache.samza.metrics"><span class="strong">ReadableMetricsRegistryListener</span></a></li>
+<li type="circle">org.apache.samza.metrics.<a href="org/apache/samza/metrics/Reservoir.html" title="interface in org.apache.samza.metrics"><span class="strong">Reservoir</span></a></li>
+<li type="circle">org.apache.samza.serializers.<a href="org/apache/samza/serializers/SerdeFactory.html" title="interface in org.apache.samza.serializers"><span class="strong">SerdeFactory</span></a>&lt;T&gt;</li>
+<li type="circle">org.apache.samza.serializers.<a href="org/apache/samza/serializers/Serializer.html" title="interface in org.apache.samza.serializers"><span class="strong">Serializer</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.samza.serializers.<a href="org/apache/samza/serializers/Serde.html" title="interface in org.apache.samza.serializers"><span class="strong">Serde</span></a>&lt;T&gt; (also extends org.apache.samza.serializers.<a href="org/apache/samza/serializers/Deserializer.html" title="interface in org.apache.samza.serializers">Deserializer</a>&lt;T&gt;)</li>
+</ul>
+</li>
+<li type="circle">org.apache.samza.storage.<a href="org/apache/samza/storage/StorageEngine.html" title="interface in org.apache.samza.storage"><span class="strong">StorageEngine</span></a></li>
+<li type="circle">org.apache.samza.storage.<a href="org/apache/samza/storage/StorageEngineFactory.html" title="interface in org.apache.samza.storage"><span class="strong">StorageEngineFactory</span></a>&lt;K,V&gt;</li>
+<li type="circle">org.apache.samza.job.<a href="org/apache/samza/job/StreamJob.html" title="interface in org.apache.samza.job"><span class="strong">StreamJob</span></a></li>
+<li type="circle">org.apache.samza.job.<a href="org/apache/samza/job/StreamJobFactory.html" title="interface in org.apache.samza.job"><span class="strong">StreamJobFactory</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/StreamTask.html" title="interface in org.apache.samza.task"><span class="strong">StreamTask</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemAdmin.html" title="interface in org.apache.samza.system"><span class="strong">SystemAdmin</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemConsumer.html" title="interface in org.apache.samza.system"><span class="strong">SystemConsumer</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemFactory.html" title="interface in org.apache.samza.system"><span class="strong">SystemFactory</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemProducer.html" title="interface in org.apache.samza.system"><span class="strong">SystemProducer</span></a></li>
+<li type="circle">org.apache.samza.container.grouper.stream.<a href="org/apache/samza/container/grouper/stream/SystemStreamPartitionGrouper.html" title="interface in org.apache.samza.container.grouper.stream"><span class="strong">SystemStreamPartitionGrouper</span></a></li>
+<li type="circle">org.apache.samza.container.grouper.stream.<a href="org/apache/samza/container/grouper/stream/SystemStreamPartitionGrouperFactory.html" title="interface in org.apache.samza.container.grouper.stream"><span class="strong">SystemStreamPartitionGrouperFactory</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/TaskContext.html" title="interface in org.apache.samza.task"><span class="strong">TaskContext</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/TaskCoordinator.html" title="interface in org.apache.samza.task"><span class="strong">TaskCoordinator</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/TaskLifecycleListener.html" title="interface in org.apache.samza.task"><span class="strong">TaskLifecycleListener</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/TaskLifecycleListenerFactory.html" title="interface in org.apache.samza.task"><span class="strong">TaskLifecycleListenerFactory</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/WindowableTask.html" title="interface in org.apache.samza.task"><span class="strong">WindowableTask</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li type="circle">org.apache.samza.job.<a href="org/apache/samza/job/ApplicationStatus.html" title="enum in org.apache.samza.job"><span class="strong">ApplicationStatus</span></a></li>
+<li type="circle">org.apache.samza.system.<a href="org/apache/samza/system/SystemStreamMetadata.OffsetType.html" title="enum in org.apache.samza.system"><span class="strong">SystemStreamMetadata.OffsetType</span></a></li>
+<li type="circle">org.apache.samza.task.<a href="org/apache/samza/task/TaskCoordinator.RequestScope.html" title="enum in org.apache.samza.task"><span class="strong">TaskCoordinator.RequestScope</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/package-list
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/package-list b/docs/learn/documentation/versioned/api/javadocs/package-list
new file mode 100644
index 0000000..d504fbf
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/package-list
@@ -0,0 +1,13 @@
+org.apache.samza
+org.apache.samza.checkpoint
+org.apache.samza.config
+org.apache.samza.container
+org.apache.samza.container.grouper.stream
+org.apache.samza.job
+org.apache.samza.metrics
+org.apache.samza.serializers
+org.apache.samza.storage
+org.apache.samza.system
+org.apache.samza.system.chooser
+org.apache.samza.task
+org.apache.samza.util

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/resources/background.gif
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/resources/background.gif b/docs/learn/documentation/versioned/api/javadocs/resources/background.gif
new file mode 100644
index 0000000..f471940
Binary files /dev/null and b/docs/learn/documentation/versioned/api/javadocs/resources/background.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/resources/tab.gif
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/resources/tab.gif b/docs/learn/documentation/versioned/api/javadocs/resources/tab.gif
new file mode 100644
index 0000000..1a73a83
Binary files /dev/null and b/docs/learn/documentation/versioned/api/javadocs/resources/tab.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/resources/titlebar.gif
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/resources/titlebar.gif b/docs/learn/documentation/versioned/api/javadocs/resources/titlebar.gif
new file mode 100644
index 0000000..17443b3
Binary files /dev/null and b/docs/learn/documentation/versioned/api/javadocs/resources/titlebar.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/resources/titlebar_end.gif
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/resources/titlebar_end.gif b/docs/learn/documentation/versioned/api/javadocs/resources/titlebar_end.gif
new file mode 100644
index 0000000..3ad78d4
Binary files /dev/null and b/docs/learn/documentation/versioned/api/javadocs/resources/titlebar_end.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/serialized-form.html b/docs/learn/documentation/versioned/api/javadocs/serialized-form.html
new file mode 100644
index 0000000..2f19fd8
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/serialized-form.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_65) on Tue Aug 05 21:46:34 PDT 2014 -->
+<title>Serialized Form (samza-api 0.8.0-SNAPSHOT API)</title>
+<meta name="date" content="2014-08-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Serialized Form (samza-api 0.8.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.samza</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.samza.SamzaException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/samza/SamzaException.html" title="class in org.apache.samza">org.apache.samza.SamzaException</a> extends java.lang.RuntimeException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.samza.config</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.samza.config.ConfigException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/samza/config/ConfigException.html" title="class in org.apache.samza.config">org.apache.samza.config.ConfigException</a> extends <a href="org/apache/samza/SamzaException.html" title="class in org.apache.samza">SamzaException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/javadocs/stylesheet.css
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/javadocs/stylesheet.css b/docs/learn/documentation/versioned/api/javadocs/stylesheet.css
new file mode 100644
index 0000000..0aeaa97
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/javadocs/stylesheet.css
@@ -0,0 +1,474 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:Arial, Helvetica, sans-serif;
+    font-size:76%;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-size:1.3em;
+}
+h1 {
+    font-size:1.8em;
+}
+h2 {
+    font-size:1.5em;
+}
+h3 {
+    font-size:1.4em;
+}
+h4 {
+    font-size:1.3em;
+}
+h5 {
+    font-size:1.2em;
+}
+h6 {
+    font-size:1.1em;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-size:1.2em;
+}
+dt code {
+    font-size:1.2em;
+}
+table tr td dt code {
+    font-size:1.2em;
+    vertical-align:top;
+}
+sup {
+    font-size:.6em;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:.8em;
+    z-index:200;
+    margin-top:-7px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    background-image:url(resources/titlebar.gif);
+    background-position:left top;
+    background-repeat:no-repeat;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:1em;
+    margin:0;
+}
+.topNav {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.bottomNav {
+    margin-top:10px;
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.subNav {
+    background-color:#dee3e9;
+    border-bottom:1px solid #9eadc0;
+    float:left;
+    width:100%;
+    overflow:hidden;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding:3px 6px;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+    font-size:90%;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+.navBarCell1Rev {
+    background-image:url(resources/tab.gif);
+    background-color:#a88834;
+    color:#FFFFFF;
+    margin: auto 5px;
+    border:1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader h1 {
+    font-size:1.3em;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 25px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:1.0em;
+}
+.indexContainer h2 {
+    font-size:1.1em;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:1.1em;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:10px 0 10px 20px;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:25px;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #9eadc0;
+    background-color:#f9f9f9;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:1px solid #9eadc0;
+    border-top:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+    border-bottom:1px solid #9eadc0;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+    border-bottom:1px solid #9eadc0;
+    width:100%;
+}
+.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+    width:100%;
+}
+.contentContainer .description table, .contentContainer .details table {
+    border-bottom:none;
+}
+.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
+    vertical-align:top;
+    padding-right:20px;
+}
+.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
+    padding-right:3px;
+}
+.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#FFFFFF;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    margin:0px;
+}
+caption a:link, caption a:hover, caption a:active, caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+    white-space:nowrap;
+    padding-top:8px;
+    padding-left:8px;
+    display:block;
+    float:left;
+    background-image:url(resources/titlebar.gif);
+    height:18px;
+}
+.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+    width:10px;
+    background-image:url(resources/titlebar_end.gif);
+    background-repeat:no-repeat;
+    background-position:top right;
+    position:relative;
+    float:left;
+}
+ul.blockList ul.blockList li.blockList table {
+    margin:0 0 12px 0px;
+    width:100%;
+}
+.tableSubHeadingColor {
+    background-color: #EEEEFF;
+}
+.altColor {
+    background-color:#eeeeef;
+}
+.rowColor {
+    background-color:#ffffff;
+}
+.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+    background:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+td.colFirst, th.colFirst {
+    border-left:1px solid #9eadc0;
+    white-space:nowrap;
+}
+td.colLast, th.colLast {
+    border-right:1px solid #9eadc0;
+}
+td.colOne, th.colOne {
+    border-right:1px solid #9eadc0;
+    border-left:1px solid #9eadc0;
+}
+table.overviewSummary  {
+    padding:0px;
+    margin-left:0px;
+}
+table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+    width:25%;
+    vertical-align:middle;
+}
+table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
+    width:25%;
+    vertical-align:middle;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:.9em;
+}
+.block {
+    display:block;
+    margin:3px 0 0 0;
+}
+.strong {
+    font-weight:bold;
+}

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/api/overview.md
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/api/overview.md b/docs/learn/documentation/versioned/api/overview.md
new file mode 100644
index 0000000..6712344
--- /dev/null
+++ b/docs/learn/documentation/versioned/api/overview.md
@@ -0,0 +1,142 @@
+---
+layout: page
+title: API Overview
+---
+<!--
+   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.
+-->
+
+When writing a stream processor for Samza, you must implement the [StreamTask](javadocs/org/apache/samza/task/StreamTask.html) interface:
+
+{% highlight java %}
+package com.example.samza;
+
+public class MyTaskClass implements StreamTask {
+
+  public void process(IncomingMessageEnvelope envelope,
+                      MessageCollector collector,
+                      TaskCoordinator coordinator) {
+    // process message
+  }
+}
+{% endhighlight %}
+
+When you run your job, Samza will create several instances of your class (potentially on multiple machines). These task instances process the messages in the input streams.
+
+In your job's configuration you can tell Samza which streams you want to consume. An incomplete example could look like this (see the [configuration documentation](../jobs/configuration.html) for more detail):
+
+{% highlight jproperties %}
+# This is the class above, which Samza will instantiate when the job is run
+task.class=com.example.samza.MyTaskClass
+
+# Define a system called "kafka" (you can give it any name, and you can define
+# multiple systems if you want to process messages from different sources)
+systems.kafka.samza.factory=org.apache.samza.system.kafka.KafkaSystemFactory
+
+# The job consumes a topic called "PageViewEvent" from the "kafka" system
+task.inputs=kafka.PageViewEvent
+
+# Define a serializer/deserializer called "json" which parses JSON messages
+serializers.registry.json.class=org.apache.samza.serializers.JsonSerdeFactory
+
+# Use the "json" serializer for messages in the "PageViewEvent" topic
+systems.kafka.streams.PageViewEvent.samza.msg.serde=json
+{% endhighlight %}
+
+For each message that Samza receives from the task's input streams, the *process* method is called. The [envelope](javadocs/org/apache/samza/system/IncomingMessageEnvelope.html) contains three things of importance: the message, the key, and the stream that the message came from.
+
+{% highlight java %}
+/** Every message that is delivered to a StreamTask is wrapped
+ * in an IncomingMessageEnvelope, which contains metadata about
+ * the origin of the message. */
+public class IncomingMessageEnvelope {
+  /** A deserialized message. */
+  Object getMessage() { ... }
+
+  /** A deserialized key. */
+  Object getKey() { ... }
+
+  /** The stream and partition that this message came from. */
+  SystemStreamPartition getSystemStreamPartition() { ... }
+}
+{% endhighlight %}
+
+The key and value are declared as Object, and need to be cast to the correct type. If you don't configure a [serializer/deserializer](../container/serialization.html), they are typically Java byte arrays. A deserializer can convert these bytes into any other type, for example the JSON deserializer mentioned above parses the byte array into java.util.Map, java.util.List and String objects.
+
+The `getSystemStreamPartition()` method returns a [SystemStreamPartition](javadocs/org/apache/samza/system/SystemStreamPartition.html) object, which tells you where the message came from. It consists of three parts:
+
+1. The *system*: the name of the system from which the message came, as defined in your job configuration. You can have multiple systems for input and/or output, each with a different name.
+2. The *stream name*: the name of the stream (topic, queue) within the source system. This is also defined in the job configuration.
+3. The [*partition*](javadocs/org/apache/samza/Partition.html): a stream is normally split into several partitions, and each partition is assigned to one StreamTask instance by Samza.
+
+The API looks like this:
+
+{% highlight java %}
+/** A triple of system name, stream name and partition. */
+public class SystemStreamPartition extends SystemStream {
+
+  /** The name of the system which provides this stream. It is
+      defined in the Samza job's configuration. */
+  public String getSystem() { ... }
+
+  /** The name of the stream/topic/queue within the system. */
+  public String getStream() { ... }
+
+  /** The partition within the stream. */
+  public Partition getPartition() { ... }
+}
+{% endhighlight %}
+
+In the example job configuration above, the system name is "kafka", the stream name is "PageViewEvent". (The name "kafka" isn't special &mdash; you can give your system any name you want.) If you have several input streams feeding into your StreamTask, you can use the SystemStreamPartition to determine what kind of message you've received.
+
+What about sending messages? If you take a look at the process() method in StreamTask, you'll see that you get a [MessageCollector](javadocs/org/apache/samza/task/MessageCollector.html).
+
+{% highlight java %}
+/** When a task wishes to send a message, it uses this interface. */
+public interface MessageCollector {
+  void send(OutgoingMessageEnvelope envelope);
+}
+{% endhighlight %}
+
+To send a message, you create an [OutgoingMessageEnvelope](javadocs/org/apache/samza/system/OutgoingMessageEnvelope.html) object and pass it to the message collector. At a minimum, the envelope specifies the message you want to send, and the system and stream name to send it to. Optionally you can specify the partitioning key and other parameters. See the [javadoc](javadocs/org/apache/samza/system/OutgoingMessageEnvelope.html) for details.
+
+**NOTE:** Please only use the MessageCollector object within the `process()` method. If you hold on to a MessageCollector instance and use it again later, your messages may not be sent correctly.
+
+For example, here's a simple task that splits each input message into words, and emits each word as a separate message:
+
+{% highlight java %}
+public class SplitStringIntoWords implements StreamTask {
+
+  // Send outgoing messages to a stream called "words"
+  // in the "kafka" system.
+  private final SystemStream OUTPUT_STREAM =
+    new SystemStream("kafka", "words");
+
+  public void process(IncomingMessageEnvelope envelope,
+                      MessageCollector collector,
+                      TaskCoordinator coordinator) {
+    String message = (String) envelope.getMessage();
+
+    for (String word : message.split(" ")) {
+      // Use the word as the key, and 1 as the value.
+      // A second task can add the 1's to get the word count.
+      collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, word, 1));
+    }
+  }
+}
+{% endhighlight %}
+
+## [SamzaContainer &raquo;](../container/samza-container.html)

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/comparisons/introduction.md
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/comparisons/introduction.md b/docs/learn/documentation/versioned/comparisons/introduction.md
new file mode 100644
index 0000000..88e17bb
--- /dev/null
+++ b/docs/learn/documentation/versioned/comparisons/introduction.md
@@ -0,0 +1,80 @@
+---
+layout: page
+title: Comparison Introduction
+---
+<!--
+   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.
+-->
+
+Here are a few of the high-level design decisions that we think make Samza a bit different from other stream processing projects.
+
+### The Stream Model
+
+Streams are the input and output to Samza jobs. Samza has a very strong model of a stream&mdash;it is more than just a simple message exchange mechanism. A stream in Samza is a partitioned, ordered-per-partition, replayable, multi-subscriber, lossless sequence of messages. Streams are not just inputs and outputs to the system, but also buffers that isolate processing stages from each other.
+
+This stronger model requires persistence, fault-tolerance, and buffering in the stream implementation, but it has several benefits.
+
+First, delays in a downstream processing stage cannot block an upstream stage. A Samza job can stop consuming for a few minutes, or even a few hours (perhaps because of a bad deploy, or a long-running computation) without having any effect on upstream jobs. This makes Samza suitable for large deployments, such as processing all data flows in a large company: isolation between jobs is essential when they are written, owned, and run by different teams in different code bases with varying SLAs.
+
+This is motivated by our experience building analogous offline processing pipelines in Hadoop. In Hadoop the processing stages are MapReduce jobs, and the output of a processing stage is a directory of files on HDFS. The input to the next processing stage is simply the files produced by the earlier stage. We have found that this strong isolation between stages makes it possible to have hundreds of loosely coupled jobs, maintained by different teams, that comprise an offline processing ecosystem. Our goal is to replicate this kind of rich ecosystem in a near-real-time setting.
+
+The second benefit of this stronger model is that all stages are multi-subscriber. In practical terms this means that if one person adds a set of processing flows that create output data streams, others can see the output, consume it, and build on it, without introducing any coupling of code between the jobs. As a happy side-effect, this makes debugging flows easy, as you can manually inspect the output of any stage.
+
+Finally, this strong stream model greatly simplifies the implementation of features in the Samza framework. Each job need only be concerned with its own inputs and outputs, and in the case of a fault, each job can be recovered and restarted independently. There is no need for central control over the entire dataflow graph.
+
+The tradeoff we need to make for this stronger stream model is that messages are written to disk. We are willing to make this tradeoff because MapReduce and HDFS have shown that durable storage can offer very high read and write throughput, and almost limitless disk space. This observation is the foundation of Kafka, which allows hundreds of MB/sec of replicated throughput, and many TB of disk space per node. When used this way, disk throughput often isn't the bottleneck.
+
+MapReduce is sometimes criticized for writing to disk more than necessary. However, this criticism applies less to stream processing: batch processing like MapReduce often is used for processing large historical collections of data in a short period of time (e.g. query a month of data in ten minutes), whereas stream processing mostly needs to keep up with the steady-state flow of data (process 10 minutes worth of data in 10 minutes). This means that the raw throughput requirements for stream processing are, generally, orders of magnitude lower than for batch processing.
+
+### <a name="state"></a> State
+
+Only the very simplest stream processing problems are stateless (i.e. can process one message at a time, independently of all other messages). Many stream processing applications require a job to maintain some state. For example:
+
+* If you want to know how many events have been seen for a particular user ID, you need to keep a counter for each user ID.
+* If you want to know how many distinct users visit your site per day, you need to keep a set of all user IDs for which you've seen at least one event today.
+* If you want to join two streams (for example, if you want to determine the click-through rate of adverts by joining a stream of ad impression events with a stream of ad click events) you need to store the event from one stream until you receive the corresponding event from the other stream.
+* If you want to augment events with some information from a database (for example, extending a page-view event with some information about the user who viewed the page), the job needs to access the current state of that database.
+
+Some kinds of state, such as counters, could be kept in-memory in the tasks, but then that state would be lost if the job is restarted. Alternatively, you can keep the state in a remote database, but performance can become unacceptable if you need to perform a database query for every message you process. Kafka can easily handle 100k-500k messages/sec per node (depending on message size), but throughput for queries against a remote key-value store tend to be closer to 1-5k requests per second &mdash; two orders of magnitude slower.
+
+In Samza, we have put particular effort into supporting high-performance, reliable state. The key is to keep state local to each node (so that queries don't need to go over the network), and to make it robust to machine failures by replicating state changes to another stream.
+
+This approach is especially interesting when combined with database *change capture*. Take the
+example above, where you have a stream of page-view events including the ID of the user who viewed the page, and you want to augment the events with more information about that user. At first glance, it looks as though you have no choice but to query the user database to look up every user ID you see (perhaps with some caching). With Samza, we can do better.
+
+*Change capture* means that every time some data changes in your database, you get an event telling you what changed. If you have that stream of change events, going all the way back to when the database was created, you can reconstruct the entire contents of the database by replaying the stream. That *changelog* stream can also be used as input to a Samza job.
+
+Now you can write a Samza job that takes both the page-view event and the changelog as inputs. You make sure that they are partitioned on the same key (e.g. user ID). Every time a changelog event comes in, you write the updated user information to the task's local storage. Every time a page-view event comes in, you read the current information about that user from local storage. That way, you can keep all the state local to a task, and never need to query a remote database.
+
+<img src="/img/{{site.version}}/learn/documentation/introduction/samza_state.png" alt="Stateful Processing" class="diagram-large">
+
+In effect, you now have a replica of the main database, broken into small partitions that are on the same machines as the Samza tasks. Database writes still need to go to the main database, but when you need to read from the database in order to process a message from the input stream, you can just consult the task's local state.
+
+This approach is not only much faster than querying a remote database, it is also much better for operations. If you are processing a high-volume stream with Samza, and making a remote query for every message, you can easily overwhelm the database with requests and affect other services using the same database. By contrast, when a task uses local state, it is isolated from everything else, so it cannot accidentally bring down other services.
+
+Partitioned local state is not always appropriate, and not required &mdash; nothing in Samza prevents calls to external databases. If you cannot produce a feed of changes from your database, or you need to rely on logic that exists only in a remote service, then it may be more convenient to call a remote service from your Samza job. But if you want to use local state, it works out of the box.
+
+### Execution Framework
+
+One final decision we made was to not build a custom distributed execution system in Samza. Instead, execution is pluggable, and currently completely handled by YARN. This has two benefits.
+
+The first benefit is practical: there is another team of smart people working on the execution framework. YARN is developing at a rapid pace, and already supports a rich set of features around resource quotas and security. This allows you to control what portion of the cluster is allocated to which users and groups, and also control the resource utilization on individual nodes (CPU, memory, etc) via cgroups. YARN is run at massive scale to support Hadoop and will likely become an ubiquitous layer. Since Samza runs entirely through YARN, there are no separate daemons or masters to run beyond the YARN cluster itself. In other words, if you already have Kafka and YARN, you don't need to install anything in order to run Samza jobs.
+
+Secondly, our integration with YARN is completely componentized. It exists in a separate package, and the main Samza framework does not depend on it at build time. This means that YARN can be replaced with other virtualization frameworks &mdash; in particular, we are interested in adding direct AWS integration. Many companies run in AWS which is itself a virtualization framework, which for Samza's purposes is equivalent to YARN: it allows you to create and destroy virtual "container" machines and guarantees fixed resources for these containers. Since stream processing jobs are long-running, it is a bit silly to run a YARN cluster inside AWS and then schedule individual jobs within this cluster. Instead, a more sensible approach would be to directly allocate a set of EC2 instances for your jobs.
+
+We think there will be a lot of innovation both in open source virtualization frameworks like Mesos and YARN and in commercial cloud providers like Amazon, so it makes sense to integrate with them.
+
+## [MUPD8 &raquo;](mupd8.html)

http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/1e2cfe22/docs/learn/documentation/versioned/comparisons/mupd8.md
----------------------------------------------------------------------
diff --git a/docs/learn/documentation/versioned/comparisons/mupd8.md b/docs/learn/documentation/versioned/comparisons/mupd8.md
new file mode 100644
index 0000000..53417f9
--- /dev/null
+++ b/docs/learn/documentation/versioned/comparisons/mupd8.md
@@ -0,0 +1,88 @@
+---
+layout: page
+title: MUPD8
+---
+<!--
+   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.
+-->
+
+*People generally want to know how similar systems compare. We've done our best to fairly contrast the feature sets of Samza with other systems. But we aren't experts in these frameworks, and we are, of course, totally biased. If we have goofed anything, please let us know and we will correct it.*
+
+### Durability
+
+MUPD8 makes no durability or delivery guarantees. Within MUPD8, stream processor tasks receive messages at most once. Samza uses Kafka for messaging, which guarantees message delivery.
+
+### Ordering
+
+As with durability, developers would ideally like their stream processors to receive messages in exactly the order that they were written.
+
+We don't entirely follow MUPD8's description of their ordering guarantees, but it seems to guarantee that all messages will be processed in the order in which they are written to MUPD8 queues, which is comparable to Kafka and Samza's guarantee.
+
+### Buffering
+
+A critical issue for handling large data flows is handling back pressure when one downstream processing stage gets slow.
+
+MUPD8 buffers messages in an in-memory queue when passing messages between two MUPD8 tasks. When a queue fills up, developers have the option to either drop the messages on the floor, log the messages to local disk, or block until the queue frees up. All of these options are sub-optimal. Dropping messages leads to incorrect results. Blocking your stream processor can have a cascading effect, where the slowest processor blocks all upstream processors, which in turn block their upstream processors, until the whole system grinds to a halt. Logging to local disk is the most reasonable, but when a fault occurs, those messages are lost on failover.
+
+By adopting Kafka's broker as a remote buffer, Samza solves all of these problems. It doesn't need to block because consumers and producers are decoupled using the Kafka brokers' disks as buffers. Messages are not dropped because Kafka brokers are highly available as of version 0.8. In the event of a failure, when a Samza job is restarted on another machine, its input and output are not lost, because they are stored remotely on replicated Kafka brokers.
+
+### State Management
+
+As described in the [introduction](introduction.html#state), stream processors often need to maintain some state as they process messages. Different frameworks have different approaches to handling such state, and what to do in case of a failure.
+
+MUPD8 uses a write back caching strategy to manage in-memory state that is periodically written back to Cassandra.
+
+Samza maintains state locally with the task. This allows state larger than will fit in memory. State is persisted to an output stream to enable recovery should the task fail. We believe this design enables stronger fault tolerance semantics, because the change log captures the evolution of state, allowing the state of a task to restored to a consistent point in time.
+
+### Deployment and execution
+
+MUPD8 includes a custom execution framework. The functionality that this framework supports in terms of users and resource limits isn't clear to us.
+
+Samza leverages YARN to deploy user code, and execute it in a distributed environment.
+
+### Fault Tolerance
+
+What should a stream processing system do when a machine or processor fails?
+
+MUPD8 uses its custom equivalent to YARN to manage fault tolerance. When a stream processor is unable to send a message to a downstream processor, it notifies MUPD8's coordinator, and all other machines are notified. The machines then send all messages to a new machine based on the key hash that's used. Messages and state can be lost when this happens.
+
+Samza uses YARN to manage fault tolerance. YARN detects when nodes or Samza tasks fail, and notifies Samza's [ApplicationMaster](../yarn/application-master.html). At that point, it's up to Samza to decide what to do. Generally, this means re-starting the task on another machine. Since messages are persisted to Kafka brokers remotely, and there are no in-memory queues, no messages should be lost (unless the processors are using async Kafka producers, which offer higher performance but don't wait for messages to be committed).
+
+### Workflow
+
+Sometimes more than one job or processing stage is needed to accomplish something. This is the case where you wish to re-partition a stream, for example. MUPD8 has a custom workflow system setup to define how to execute multiple jobs at once, and how to feed stream data from one into the other.
+
+Samza makes the individual jobs the level of granularity of execution. Jobs communicate via named input and output streams. This implicitly defines a data flow graph between all running jobs. We chose this model to enable data flow graphs with processing stages owned by different engineers on different teams, working in different code bases, without the need to wire everything together into a single topology.
+
+This was motivated by our experience with Hadoop, where the data flow between jobs is implicitly defined by their input and output directories. This decentralized model has proven itself to scale well to a large organization.
+
+### Memory
+
+MUPD8 executes all of its map/update processors inside a single JVM, using threads. This is memory-efficient, as the JVM memory overhead is shared across the threads.
+
+Samza uses a separate JVM for each [stream processor container](../container/samza-container.html). This has the disadvantage of using more memory compared to running multiple stream processing threads within a single JVM. However, the advantage is improved isolation between tasks, which can make them more reliable.
+
+### Isolation
+
+MUPD8 provides no resource isolation between stream processors. A single badly behaved stream processor can bring down all processors on the node.
+
+Samza uses process level isolation between stream processor tasks, similarly to Hadoop's approach. We can enforce strict per-process memory limits. In addition, Samza supports CPU limits when used with YARN cgroups. As the YARN support for cgroups develops further, it should also become possible to support disk and network cgroup limits.
+
+### Further Reading
+
+The MUPD8 team has published a very good [paper](http://vldb.org/pvldb/vol5/p1814_wanglam_vldb2012.pdf) on the design of their system.
+
+## [Storm &raquo;](storm.html)