---
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><a href="core-concepts/core-concepts.html">CORE CONCEPTS</a></h4>
<h4><a href="architecture/architecture-overview.html">ARCHITECTURE</a></h4>
<h4><a href="jobs/samza-configurations.html">CONFIGURATIONS</a></h4>

<h4>API</h4>

<ul class="documentation-list">
  <li><a href="api/programming-model.html">API overview</a></li>
  <li><a href="api/high-level-api.html">High Level Streams API</a></li>
  <li><a href="api/low-level-api.html">Low Level Task API</a></li>
  <li><a href="api/table-api.html">Table API</a></li>
  <li><a href="api/test-framework.html">Testing Samza</a></li>
  <li><a href="api/samza-sql.html">Samza SQL</a></li>
  <li><a href="api/beam-api.html">Apache BEAM</a></li>
</ul>

<h4>DEPLOYMENT</h4>

<ul class="documentation-list">
  <li><a href="deployment/deployment-model.html">Deployment options</a></li>
  <li><a href="deployment/yarn.html">Run on YARN</a></li>
  <li><a href="deployment/standalone.html">Run as an embedded library</a></li>
</ul>

<h4>CONNECTORS</h4>

<ul class="documentation-list">
  <li><a href="connectors/overview.html">Connectors overview</a></li>
  <li><a href="connectors/kafka.html">Apache Kafka</a></li>
  <li><a href="connectors/hdfs.html">HDFS</a></li>
  <li><a href="connectors/eventhubs.html">Azure EventHubs</a></li>
  <li><a href="connectors/kinesis.html">AWS Kinesis</a></li>
</ul>

<h4>OPERATIONS</h4>

<ul class="documentation-list">
  <li><a href="operations/monitoring.html">Monitoring</a></li>
</ul>

</div>
