beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From taki...@apache.org
Subject [1/3] incubator-beam-site git commit: Capability matrix page + blog post: - Content as discussed in this thread: http://mail-archives.apache.org/mod_mbox/incubator-beam-dev/201603.mbox/%3CCAB8MnHW6mE3GXvemDStCvn_1zMxqXj0ZWLJBgO9hNuHed9ue%2Bw%40mail.g
Date Thu, 17 Mar 2016 22:51:55 GMT
Repository: incubator-beam-site
Updated Branches:
  refs/heads/asf-site a8ebbad3e -> b04b002ca


http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/blog/index.html
----------------------------------------------------------------------
diff --git a/content/blog/index.html b/content/blog/index.html
index 9513347..66fa6fe 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>
@@ -86,8 +87,795 @@
     <p>This is the blog for the Apache Beam project. This blog contains news and updates
 for the project.</p>
 
+<h3 id="a-classpost-link-hrefbeamcompatibility20160317compatability-matrixhtmlclarifying--formalizing-runner-capabilitiesa"><a class="post-link" href="/beam/compatibility/2016/03/17/compatability-matrix.html">Clarifying &amp; Formalizing Runner Capabilities</a></h3>
+<p><i>Mar 17, 2016 •  Frances Perry [<a href="https://twitter.com/francesjperry">@francesjperry</a>] &amp; Tyler Akidau [<a href="https://twitter.com/takidau">@takidau</a>]
+</i></p>
+
+<p>With initial code drops complete (<a href="https://github.com/apache/incubator-beam/pull/1">Dataflow SDK and Runner</a>, <a href="https://github.com/apache/incubator-beam/pull/12">Flink Runner</a>, <a href="https://github.com/apache/incubator-beam/pull/42">Spark Runner</a>) and expressed interest in runner implementations for <a href="https://issues.apache.org/jira/browse/BEAM-9">Storm</a>, <a href="https://issues.apache.org/jira/browse/BEAM-19">Hadoop</a>, and <a href="https://issues.apache.org/jira/browse/BEAM-79">Gearpump</a> (amongst others), we wanted to start addressing a big question in the Apache Beam (incubating) community: what capabilities will each runner be able to support?</p>
+
+<p>While we’d love to have a world where all runners support the full suite of semantics included in the Beam Model (formerly referred to as the <a href="http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf">Dataflow Model</a>), practically speaking, there will always be certain features that some runners can’t provide. For example, a Hadoop-based runner would be inherently batch-based and may be unable to (easily) implement support for unbounded collections. However, that doesn’t prevent it from being extremely useful for a large set of uses. In other cases, the implementations provided by one runner may have slightly different semantics that those provided by another (e.g. even though the current suite of runners all support exactly-once delivery guarantees, an <a href="http://samza.apache.org/">Apache Samza</a> runner, which would be a welcome addition, would currently only support at-least-once).</p>
+
+<p>To help clarify things, we’ve been working on enumerating the key features of the Beam model in a <a href="/capability-matrix/">capability matrix</a> for all existing runners, categorized around the four key questions addressed by the model: <span class="wwwh-what-dark">What</span> / <span class="wwwh-where-dark">Where</span> / <span class="wwwh-when-dark">When</span> / <span class="wwwh-how-dark">How</span> (if you’re not familiar with those questions, you might want to read through <a href="http://oreilly.com/ideas/the-world-beyond-batch-streaming-102">Streaming 102</a> for an overview). This table will be maintained over time as the model evolves, our understanding grows, and runners are created or features added.</p>
+
+<p>Included below is a summary snapshot of our current understanding of the capabilities of the existing runners (see the <a href="/capability-matrix/">live version</a> for full details, descriptions, and Jira links); since integration is still under way, the system as whole isn’t yet in a completely stable, usable state. But that should be changing in the near future, and we’ll be updating loud and clear on this blog when the first supported Beam 1.0 release happens.</p>
+
+<p>In the meantime, these tables should help clarify where we expect to be in the very near term, and help guide expectations about what existing runners are capable of, and what features runner implementers will be tackling next.</p>
+
+<script type="text/javascript">
+  function ToggleTables(showDetails, anchor) {
+    document.getElementById("cap-summary").style.display = showDetails ? "none" : "block";
+    document.getElementById("cap-full").style.display = showDetails ? "block" : "none";
+    location.hash = anchor;
+  }
+</script>
+
+<!-- Summary table -->
+
+<div id="cap-blog" style="display:block">
+<table class="cap-summary">
+  
+  <tr class="cap-summary" id="cap-blog-what">
+    <th class="cap-summary color-metadata format-category" colspan="5" style="color:#ca1">What is being computed?</th>
+  </tr>
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability"></th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#ec3">Beam Model</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#ec3">Google Cloud Dataflow</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#ec3">Apache Flink</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#ec3">Apache Spark</th>
+  
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">ParDo</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">GroupByKey</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Flatten</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Combine</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Composite Transforms</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Side Inputs</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Source API</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ec3;border-color:#ca1"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Aggregators</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#fe5;border-color:#ca1"><b><center>~</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#ec3">Keyed State</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#ca1"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#ca1"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#ca1"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#ca1"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <td class="cap-summary color-blank cap-blank" colspan="5"></td>
+  </tr>
+  
+  <tr class="cap-summary" id="cap-blog-where">
+    <th class="cap-summary color-metadata format-category" colspan="5" style="color:#37d">Where in event time?</th>
+  </tr>
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability"></th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#59f">Beam Model</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#59f">Google Cloud Dataflow</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#59f">Apache Flink</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#59f">Apache Spark</th>
+  
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Global windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Fixed windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8cf;border-color:#37d"><b><center>~</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Sliding windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#37d"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Session windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#37d"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Custom windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#37d"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Custom merging windows</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#37d"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#59f">Timestamp control</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#59f;border-color:#37d"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#37d"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <td class="cap-summary color-blank cap-blank" colspan="5"></td>
+  </tr>
+  
+  <tr class="cap-summary" id="cap-blog-when">
+    <th class="cap-summary color-metadata format-category" colspan="5" style="color:#6a4">When in processing time?</th>
+  </tr>
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability"></th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#8c6">Beam Model</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#8c6">Google Cloud Dataflow</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#8c6">Apache Flink</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#8c6">Apache Spark</th>
+  
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Configurable triggering</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Event-time triggers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Processing-time triggers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Count triggers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">[Meta]data driven triggers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Composite triggers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Allowed lateness</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#8c6;border-color:#6a4"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#8c6">Timers</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#6a4"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <td class="cap-summary color-blank cap-blank" colspan="5"></td>
+  </tr>
+  
+  <tr class="cap-summary" id="cap-blog-how">
+    <th class="cap-summary color-metadata format-category" colspan="5" style="color:#b55">How do refinements relate?</th>
+  </tr>
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability"></th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#d77">Beam Model</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#d77">Google Cloud Dataflow</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#d77">Apache Flink</th>
+  
+    <th class="cap-summary color-platform format-platform" style="color:#d77">Apache Spark</th>
+  
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#d77">Discarding</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#d77">Accumulating</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#d77;border-color:#b55"><b><center>&#x2713;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#b55"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <th class="cap-summary color-capability format-capability" style="color:#d77">Accumulating &amp; Retracting</th>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#b55"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#b55"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#b55"><b><center>&#x2715;</center></b>
+</td>
+    
+    
+
+    <td width="25%" class="cap-summary" style="background-color:#ddd;border-color:#b55"><b><center>&#x2715;</center></b>
+</td>
+    
+  </tr>
+  
+  <tr class="cap-summary">
+    <td class="cap-summary color-blank cap-blank" colspan="5"></td>
+  </tr>
+  
+</table>
+</div>
+
+<hr />
+
 <h3 id="a-classpost-link-hrefbeampythonsdk20160225beam-has-a-logo0htmldataflow-python-sdk-is-now-publica"><a class="post-link" href="/beam/python/sdk/2016/02/25/beam-has-a-logo0.html">Dataflow Python SDK is now public!</a></h3>
-<p><i>Feb 25, 2016 - posted by James Malone [<a href="https://twitter.com/chimerasaurus">@chimerasaurus</a>]
+<p><i>Feb 25, 2016 •  James Malone [<a href="https://twitter.com/chimerasaurus">@chimerasaurus</a>]
 </i></p>
 
 <p>When the Apache Beam project proposed entry into the <a href="http://wiki.apache.org/incubator/BeamProposal">Apache Incubator</a> the proposal
@@ -96,13 +884,16 @@ included the <a href="https://github.com/GoogleCloudPlatform/DataflowJavaSDK">Da
 <hr />
 
 <h3 id="a-classpost-link-hrefbeamupdatewebsite20160222beam-has-a-logohtmlapache-beam-has-a-logoa"><a class="post-link" href="/beam/update/website/2016/02/22/beam-has-a-logo.html">Apache Beam has a logo!</a></h3>
-<p><i>Feb 22, 2016 - posted by James Malone [<a href="https://twitter.com/chimerasaurus">@chimerasaurus</a>]
+<p><i>Feb 22, 2016 •  James Malone [<a href="https://twitter.com/chimerasaurus">@chimerasaurus</a>]
 </i></p>
 
 <p>One of the major benefits of Apache Beam is the fact that it unifies both
 both batch and stream processing into one powerful model. In fact, this unification
 is so important, the name Beam itself comes from the union of <strong>B</strong>atch + str<strong>EAM</strong> = Beam</p>
 
+<p>When the project started, we wanted a logo which was both appealing and visually
+represented this unification.</p>
+
 <hr />
 
 

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/feed.xml
----------------------------------------------------------------------
diff --git a/content/feed.xml b/content/feed.xml
index 39ae198..67f2356 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -6,9 +6,804 @@
 </description>
     <link>http://beam.incubator.apache.org/</link>
     <atom:link href="http://beam.incubator.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Tue, 08 Mar 2016 10:32:11 +0100</pubDate>
-    <lastBuildDate>Tue, 08 Mar 2016 10:32:11 +0100</lastBuildDate>
-    <generator>Jekyll v2.5.3</generator>
+    <pubDate>Thu, 17 Mar 2016 14:39:57 -0700</pubDate>
+    <lastBuildDate>Thu, 17 Mar 2016 14:39:57 -0700</lastBuildDate>
+    <generator>Jekyll v3.1.2</generator>
+    
+      <item>
+        <title>Clarifying &amp; Formalizing Runner Capabilities</title>
+        <description>&lt;p&gt;With initial code drops complete (&lt;a href=&quot;https://github.com/apache/incubator-beam/pull/1&quot;&gt;Dataflow SDK and Runner&lt;/a&gt;, &lt;a href=&quot;https://github.com/apache/incubator-beam/pull/12&quot;&gt;Flink Runner&lt;/a&gt;, &lt;a href=&quot;https://github.com/apache/incubator-beam/pull/42&quot;&gt;Spark Runner&lt;/a&gt;) and expressed interest in runner implementations for &lt;a href=&quot;https://issues.apache.org/jira/browse/BEAM-9&quot;&gt;Storm&lt;/a&gt;, &lt;a href=&quot;https://issues.apache.org/jira/browse/BEAM-19&quot;&gt;Hadoop&lt;/a&gt;, and &lt;a href=&quot;https://issues.apache.org/jira/browse/BEAM-79&quot;&gt;Gearpump&lt;/a&gt; (amongst others), we wanted to start addressing a big question in the Apache Beam (incubating) community: what capabilities will each runner be able to support?&lt;/p&gt;
+
+&lt;p&gt;While we’d love to have a world where all runners support the full suite of semantics included in the Beam Model (formerly referred to as the &lt;a href=&quot;http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf&quot;&gt;Dataflow Model&lt;/a&gt;), practically speaking, there will always be certain features that some runners can’t provide. For example, a Hadoop-based runner would be inherently batch-based and may be unable to (easily) implement support for unbounded collections. However, that doesn’t prevent it from being extremely useful for a large set of uses. In other cases, the implementations provided by one runner may have slightly different semantics that those provided by another (e.g. even though the current suite of runners all support exactly-once delivery guarantees, an &lt;a href=&quot;http://samza.apache.org/&quot;&gt;Apache Samza&lt;/a&gt; runner, which would be a welcome addition, would currently only support at-least-once).&lt;/p&gt;
+
+&lt;p&gt;To help clarify things, we’ve been working on enumerating the key features of the Beam model in a &lt;a href=&quot;/capability-matrix/&quot;&gt;capability matrix&lt;/a&gt; for all existing runners, categorized around the four key questions addressed by the model: &lt;span class=&quot;wwwh-what-dark&quot;&gt;What&lt;/span&gt; / &lt;span class=&quot;wwwh-where-dark&quot;&gt;Where&lt;/span&gt; / &lt;span class=&quot;wwwh-when-dark&quot;&gt;When&lt;/span&gt; / &lt;span class=&quot;wwwh-how-dark&quot;&gt;How&lt;/span&gt; (if you’re not familiar with those questions, you might want to read through &lt;a href=&quot;http://oreilly.com/ideas/the-world-beyond-batch-streaming-102&quot;&gt;Streaming 102&lt;/a&gt; for an overview). This table will be maintained over time as the model evolves, our understanding grows, and runners are created or features added.&lt;/p&gt;
+
+&lt;p&gt;Included below is a summary snapshot of our current understanding of the capabilities of the existing runners (see the &lt;a href=&quot;/capability-matrix/&quot;&gt;live version&lt;/a&gt; for full details, descriptions, and Jira links); since integration is still under way, the system as whole isn’t yet in a completely stable, usable state. But that should be changing in the near future, and we’ll be updating loud and clear on this blog when the first supported Beam 1.0 release happens.&lt;/p&gt;
+
+&lt;p&gt;In the meantime, these tables should help clarify where we expect to be in the very near term, and help guide expectations about what existing runners are capable of, and what features runner implementers will be tackling next.&lt;/p&gt;
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+  function ToggleTables(showDetails, anchor) {
+    document.getElementById(&quot;cap-summary&quot;).style.display = showDetails ? &quot;none&quot; : &quot;block&quot;;
+    document.getElementById(&quot;cap-full&quot;).style.display = showDetails ? &quot;block&quot; : &quot;none&quot;;
+    location.hash = anchor;
+  }
+&lt;/script&gt;
+
+&lt;!-- Summary table --&gt;
+
+&lt;div id=&quot;cap-blog&quot; style=&quot;display:block&quot;&gt;
+&lt;table class=&quot;cap-summary&quot;&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot; id=&quot;cap-blog-what&quot;&gt;
+    &lt;th class=&quot;cap-summary color-metadata format-category&quot; colspan=&quot;5&quot; style=&quot;color:#ca1&quot;&gt;What is being computed?&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability&quot;&gt;&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#ec3&quot;&gt;Beam Model&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#ec3&quot;&gt;Google Cloud Dataflow&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#ec3&quot;&gt;Apache Flink&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#ec3&quot;&gt;Apache Spark&lt;/th&gt;
+  
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;ParDo&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;GroupByKey&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Flatten&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Combine&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Composite Transforms&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Side Inputs&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Source API&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ec3;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Aggregators&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#fe5;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#ec3&quot;&gt;Keyed State&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#ca1&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;td class=&quot;cap-summary color-blank cap-blank&quot; colspan=&quot;5&quot;&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot; id=&quot;cap-blog-where&quot;&gt;
+    &lt;th class=&quot;cap-summary color-metadata format-category&quot; colspan=&quot;5&quot; style=&quot;color:#37d&quot;&gt;Where in event time?&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability&quot;&gt;&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#59f&quot;&gt;Beam Model&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#59f&quot;&gt;Google Cloud Dataflow&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#59f&quot;&gt;Apache Flink&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#59f&quot;&gt;Apache Spark&lt;/th&gt;
+  
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Global windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Fixed windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8cf;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;~&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Sliding windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Session windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Custom windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Custom merging windows&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#59f&quot;&gt;Timestamp control&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#59f;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#37d&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;td class=&quot;cap-summary color-blank cap-blank&quot; colspan=&quot;5&quot;&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot; id=&quot;cap-blog-when&quot;&gt;
+    &lt;th class=&quot;cap-summary color-metadata format-category&quot; colspan=&quot;5&quot; style=&quot;color:#6a4&quot;&gt;When in processing time?&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability&quot;&gt;&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#8c6&quot;&gt;Beam Model&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#8c6&quot;&gt;Google Cloud Dataflow&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#8c6&quot;&gt;Apache Flink&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#8c6&quot;&gt;Apache Spark&lt;/th&gt;
+  
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Configurable triggering&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Event-time triggers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Processing-time triggers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Count triggers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;[Meta]data driven triggers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Composite triggers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Allowed lateness&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#8c6;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#8c6&quot;&gt;Timers&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#6a4&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;td class=&quot;cap-summary color-blank cap-blank&quot; colspan=&quot;5&quot;&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot; id=&quot;cap-blog-how&quot;&gt;
+    &lt;th class=&quot;cap-summary color-metadata format-category&quot; colspan=&quot;5&quot; style=&quot;color:#b55&quot;&gt;How do refinements relate?&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability&quot;&gt;&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#d77&quot;&gt;Beam Model&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#d77&quot;&gt;Google Cloud Dataflow&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#d77&quot;&gt;Apache Flink&lt;/th&gt;
+  
+    &lt;th class=&quot;cap-summary color-platform format-platform&quot; style=&quot;color:#d77&quot;&gt;Apache Spark&lt;/th&gt;
+  
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#d77&quot;&gt;Discarding&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#d77&quot;&gt;Accumulating&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#d77;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2713;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;th class=&quot;cap-summary color-capability format-capability&quot; style=&quot;color:#d77&quot;&gt;Accumulating &amp;amp; Retracting&lt;/th&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+    
+
+    &lt;td width=&quot;25%&quot; class=&quot;cap-summary&quot; style=&quot;background-color:#ddd;border-color:#b55&quot;&gt;&lt;b&gt;&lt;center&gt;&amp;#x2715;&lt;/center&gt;&lt;/b&gt;
+&lt;/td&gt;
+    
+  &lt;/tr&gt;
+  
+  &lt;tr class=&quot;cap-summary&quot;&gt;
+    &lt;td class=&quot;cap-summary color-blank cap-blank&quot; colspan=&quot;5&quot;&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  
+&lt;/table&gt;
+&lt;/div&gt;
+
+</description>
+        <pubDate>Thu, 17 Mar 2016 11:00:00 -0700</pubDate>
+        <link>http://beam.incubator.apache.org/beam/compatibility/2016/03/17/compatability-matrix.html</link>
+        <guid isPermaLink="true">http://beam.incubator.apache.org/beam/compatibility/2016/03/17/compatability-matrix.html</guid>
+        
+        
+        <category>beam</category>
+        
+        <category>compatibility</category>
+        
+      </item>
     
       <item>
         <title>Dataflow Python SDK is now public!</title>
@@ -25,7 +820,7 @@ included the &lt;a href=&quot;https://github.com/GoogleCloudPlatform/DataflowJav
 
 &lt;p&gt;Apache Beam Team&lt;/p&gt;
 </description>
-        <pubDate>Thu, 25 Feb 2016 22:00:00 +0100</pubDate>
+        <pubDate>Thu, 25 Feb 2016 13:00:00 -0800</pubDate>
         <link>http://beam.incubator.apache.org/beam/python/sdk/2016/02/25/beam-has-a-logo0.html</link>
         <guid isPermaLink="true">http://beam.incubator.apache.org/beam/python/sdk/2016/02/25/beam-has-a-logo0.html</guid>
         
@@ -56,10 +851,10 @@ now has a logo.&lt;/p&gt;
 unification of bath and streaming, as beams of light, within the ‘B’. We will base
 our future website and documentation design around this logo and its coloring. We
 will also make various permutations and resolutions of this logo available in the
-coming weeks. For any questions or comments, send an email to the &lt;code&gt;dev@&lt;/code&gt; email list
+coming weeks. For any questions or comments, send an email to the &lt;code class=&quot;highlighter-rouge&quot;&gt;dev@&lt;/code&gt; email list
 for Apache Beam.&lt;/p&gt;
 </description>
-        <pubDate>Mon, 22 Feb 2016 19:21:48 +0100</pubDate>
+        <pubDate>Mon, 22 Feb 2016 10:21:48 -0800</pubDate>
         <link>http://beam.incubator.apache.org/beam/update/website/2016/02/22/beam-has-a-logo.html</link>
         <guid isPermaLink="true">http://beam.incubator.apache.org/beam/update/website/2016/02/22/beam-has-a-logo.html</guid>
         

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/getting_started/index.html
----------------------------------------------------------------------
diff --git a/content/getting_started/index.html b/content/getting_started/index.html
index 8fbcf74..6ee33ee 100644
--- a/content/getting_started/index.html
+++ b/content/getting_started/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index 34c68b8..7174418 100644
--- a/content/index.html
+++ b/content/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>
@@ -116,6 +117,8 @@
     <h3>Blog</h3>
     <div class="list-group">
     
+    <a class="list-group-item" href="/beam/compatibility/2016/03/17/compatability-matrix.html">Mar 17, 2016 - Clarifying &amp; Formalizing Runner Capabilities</a>
+    
     <a class="list-group-item" href="/beam/python/sdk/2016/02/25/beam-has-a-logo0.html">Feb 25, 2016 - Dataflow Python SDK is now public!</a>
     
     <a class="list-group-item" href="/beam/update/website/2016/02/22/beam-has-a-logo.html">Feb 22, 2016 - Apache Beam has a logo!</a>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/issue_tracking/index.html
----------------------------------------------------------------------
diff --git a/content/issue_tracking/index.html b/content/issue_tracking/index.html
index 96ffff2..9c0cc03 100644
--- a/content/issue_tracking/index.html
+++ b/content/issue_tracking/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/mailing_lists/index.html
----------------------------------------------------------------------
diff --git a/content/mailing_lists/index.html b/content/mailing_lists/index.html
index 3ebb7d1..d823e69 100644
--- a/content/mailing_lists/index.html
+++ b/content/mailing_lists/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/privacy_policy/index.html
----------------------------------------------------------------------
diff --git a/content/privacy_policy/index.html b/content/privacy_policy/index.html
index 6d6bb42..614f18a 100644
--- a/content/privacy_policy/index.html
+++ b/content/privacy_policy/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/source_repository/index.html
----------------------------------------------------------------------
diff --git a/content/source_repository/index.html b/content/source_repository/index.html
index e9ca2e8..35f9242 100644
--- a/content/source_repository/index.html
+++ b/content/source_repository/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>
@@ -88,20 +89,23 @@
 <h2 id="web-browser-access">Web Browser Access</h2>
 <p>The following is a link to a browsable version of the source repository:</p>
 
-<pre><code>https://git-wip-us.apache.org/repos/asf/incubator-beam.git
+<div class="highlighter-rouge"><pre class="highlight"><code>https://git-wip-us.apache.org/repos/asf/incubator-beam.git
 </code></pre>
+</div>
 
 <h2 id="anonymous-access">Anonymous Access</h2>
 <p>The source can be checked out anonymously from Git with this command (See http://git-scm.com/docs/git-clone):</p>
 
-<pre><code>$ git clone https://git-wip-us.apache.org/repos/asf/incubator-beam.git
+<div class="highlighter-rouge"><pre class="highlight"><code>$ git clone https://git-wip-us.apache.org/repos/asf/incubator-beam.git
 </code></pre>
+</div>
 
 <h2 id="developer-access">Developer Access</h2>
 <p>Only project developers can access the Git tree via this method (See http://git-scm.com/docs/git-clone).</p>
 
-<pre><code>$ git clone https://git-wip-us.apache.org/repos/asf/incubator-beam.git
+<div class="highlighter-rouge"><pre class="highlight"><code>$ git clone https://git-wip-us.apache.org/repos/asf/incubator-beam.git
 </code></pre>
+</div>
 
 <h2 id="access-from-behind-a-firewall">Access from Behind a Firewall</h2>
 <p>Refer to the documentation of the SCM used for more information about access behind a firewall.</p>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/styles/site.css
----------------------------------------------------------------------
diff --git a/content/styles/site.css b/content/styles/site.css
index 667079a..afba989 100644
--- a/content/styles/site.css
+++ b/content/styles/site.css
@@ -5809,3 +5809,110 @@ button.close {
 @media print {
   .hidden-print {
     display: none !important; } }
+/* What/Where/When/How colors. */
+.wwwh-what-dark {
+  color: #ca1;
+  font-weight: bold;
+  font-style: italic; }
+
+.wwwh-where-dark {
+  color: #37d;
+  font-weight: bold;
+  font-style: italic; }
+
+.wwwh-when-dark {
+  color: #6a4;
+  font-weight: bold;
+  font-style: italic; }
+
+.wwwh-how-dark {
+  color: #b55;
+  font-weight: bold;
+  font-style: italic; }
+
+/* Capability matrix general sizing, alignment etc. */
+table.cap {
+  border-spacing: 0px;
+  border-collapse: collapse;
+  padding: 2px; }
+
+td.cap {
+  border-width: 1px;
+  border-style: solid;
+  vertical-align: text-top;
+  padding: 0.5ex; }
+
+th.cap, tr.cap, table.cap {
+  border-width: 1px;
+  border-style: solid;
+  vertical-align: text-top;
+  padding: 0.5ex; }
+
+td.cap-blank {
+  padding: 10px; }
+
+/* Capability matrix blog-post sizing, alignment etc. */
+table.cap-summary {
+  border-spacing: 0px;
+  border-collapse: collapse;
+  padding: 2px;
+  width: 600px; }
+
+td.cap-summary {
+  border-width: 1px;
+  border-style: solid;
+  vertical-align: text-top;
+  padding: 0.5ex; }
+
+th.cap-summary, tr.cap-summary, table.cap-summary {
+  border-width: 1px;
+  border-style: solid;
+  vertical-align: text-top;
+  padding: 0.5ex; }
+
+td.cap-summary-blank {
+  padding: 10px; }
+
+/* Capability matrix semantic coloring. */
+th.color-metadata, td.color-metadata {
+  background-color: #fff;
+  border-color: #fff;
+  color: #000; }
+
+th.color-capability {
+  background-color: #333;
+  border-color: #222; }
+
+th.color-platform {
+  background-color: #333;
+  border-color: #222; }
+
+td.color-blank {
+  background-color: #fff;
+  color: #fff; }
+
+/* Capability matrix semantic formatting */
+th.format-category {
+  vertical-align: text-top;
+  font-size: 20px;
+  text-align: center; }
+
+th.format-capability {
+  text-align: right;
+  white-space: nowrap; }
+
+th.format-platform {
+  text-align: center; }
+
+/* Capability matrix expand/collapse details toggle. */
+div.cap-toggle {
+  border-color: #000;
+  color: #000;
+  padding-top: 1.5ex;
+  border-style: solid;
+  border-width: 0px;
+  text-align: center;
+  cursor: pointer;
+  position: absolute;
+  font-size: 12px;
+  font-weight: normal; }

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/content/team/index.html
----------------------------------------------------------------------
diff --git a/content/team/index.html b/content/team/index.html
index 4c264e3..590dc68 100644
--- a/content/team/index.html
+++ b/content/team/index.html
@@ -45,6 +45,7 @@
           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="/getting_started/">Getting Started</a></li>
+	    <li><a href="/capability-matrix/">Capability Matrix</a></li>
             <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li>
             <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li>
           </ul>

http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/931d7f51/styles/site.scss
----------------------------------------------------------------------
diff --git a/styles/site.scss b/styles/site.scss
index cb6f8f8..2a64459 100644
--- a/styles/site.scss
+++ b/styles/site.scss
@@ -2,3 +2,4 @@
 ---
 
 @import "bootstrap";
+@import "capability-matrix";


Mime
View raw message