You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by uc...@apache.org on 2017/01/18 14:00:54 UTC

[54/84] [abbrv] flink-web git commit: Rebuild website

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/q/quickstart-SNAPSHOT.sh
----------------------------------------------------------------------
diff --git a/content/q/quickstart-SNAPSHOT.sh b/content/q/quickstart-SNAPSHOT.sh
new file mode 100755
index 0000000..1b1f2d2
--- /dev/null
+++ b/content/q/quickstart-SNAPSHOT.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+################################################################################
+#  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.
+################################################################################
+
+
+PACKAGE=quickstart
+
+mvn archetype:generate								\
+  -DarchetypeGroupId=org.apache.flink				\
+  -DarchetypeArtifactId=flink-quickstart-java		\
+  -DarchetypeVersion=1.2-SNAPSHOT					\
+  -DgroupId=org.myorg.quickstart 					\
+  -DartifactId=$PACKAGE								\
+  -Dversion=0.1										\
+  -Dpackage=org.myorg.quickstart 					\
+  -DinteractiveMode=false							\
+  -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/
+
+#
+# Give some guidance
+#
+echo -e "\\n\\n"
+echo -e "\\tA sample quickstart Flink Job has been created."
+echo -e "\\tSwitch into the directory using"
+echo -e "\\t\\t cd $PACKAGE"
+echo -e "\\tImport the project there using your favorite IDE (Import it as a maven project)"
+echo -e "\\tBuild a jar inside the directory using"
+echo -e "\\t\\t mvn clean package"
+echo -e "\\tYou will find the runnable jar in $PACKAGE/target"
+echo -e "\\tConsult our website if you have any troubles: http://flink.apache.org/community.html#mailing-lists"
+echo -e "\\n\\n"

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/q/quickstart-scala-SNAPSHOT.sh
----------------------------------------------------------------------
diff --git a/content/q/quickstart-scala-SNAPSHOT.sh b/content/q/quickstart-scala-SNAPSHOT.sh
new file mode 100755
index 0000000..9cfeb2e
--- /dev/null
+++ b/content/q/quickstart-scala-SNAPSHOT.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+################################################################################
+#  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.
+################################################################################
+
+
+PACKAGE=quickstart
+
+mvn archetype:generate								\
+  -DarchetypeGroupId=org.apache.flink 				\
+  -DarchetypeArtifactId=flink-quickstart-scala		\
+  -DarchetypeVersion=1.2-SNAPSHOT					\
+  -DgroupId=org.myorg.quickstart					\
+  -DartifactId=$PACKAGE								\
+  -Dversion=0.1										\
+  -Dpackage=org.myorg.quickstart					\
+  -DinteractiveMode=false							\
+  -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/
+
+#
+# Give some guidance
+#
+echo -e "\\n\\n"
+echo -e "\\tA sample quickstart Flink Job has been created."
+echo -e "\\tSwitch into the directory using"
+echo -e "\\t\\t cd $PACKAGE"
+echo -e "\\tImport the project there using your favorite IDE (Import it as a maven project)"
+echo -e "\\tBuild a jar inside the directory using"
+echo -e "\\t\\t mvn clean package"
+echo -e "\\tYou will find the runnable jar in $PACKAGE/target"
+echo -e "\\tConsult our website if you have any troubles: http://flink.apache.org/community.html#mailing-lists"
+echo -e "\\n\\n"

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/q/quickstart-scala.sh
----------------------------------------------------------------------
diff --git a/content/q/quickstart-scala.sh b/content/q/quickstart-scala.sh
new file mode 100755
index 0000000..7dcbe34
--- /dev/null
+++ b/content/q/quickstart-scala.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+################################################################################
+#  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.
+################################################################################
+
+
+PACKAGE=quickstart
+
+mvn archetype:generate								\
+  -DarchetypeGroupId=org.apache.flink				\
+  -DarchetypeArtifactId=flink-quickstart-scala		\
+  -DarchetypeVersion=1.1.4							\
+  -DgroupId=org.myorg.quickstart					\
+  -DartifactId=$PACKAGE								\
+  -Dversion=0.1										\
+  -Dpackage=org.myorg.quickstart					\
+  -DinteractiveMode=false
+
+#
+# Give some guidance
+#
+echo -e "\\n\\n"
+echo -e "\\tA sample quickstart Flink Job has been created."
+echo -e "\\tSwitch into the directory using"
+echo -e "\\t\\t cd $PACKAGE"
+echo -e "\\tImport the project there using your favorite IDE (Import it as a maven project)"
+echo -e "\\tBuild a jar inside the directory using"
+echo -e "\\t\\t mvn clean package"
+echo -e "\\tYou will find the runnable jar in $PACKAGE/target"
+echo -e "\\tConsult our website if you have any troubles: http://flink.apache.org/community.html#mailing-lists"
+echo -e "\\n\\n"

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/q/quickstart.sh
----------------------------------------------------------------------
diff --git a/content/q/quickstart.sh b/content/q/quickstart.sh
new file mode 100755
index 0000000..972400a
--- /dev/null
+++ b/content/q/quickstart.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+################################################################################
+#  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.
+################################################################################
+
+
+PACKAGE=quickstart
+
+mvn archetype:generate								\
+  -DarchetypeGroupId=org.apache.flink				\
+  -DarchetypeArtifactId=flink-quickstart-java		\
+  -DarchetypeVersion=1.1.3							\
+  -DgroupId=org.myorg.quickstart					\
+  -DartifactId=$PACKAGE								\
+  -Dversion=0.1										\
+  -Dpackage=org.myorg.quickstart					\
+  -DinteractiveMode=false
+
+#
+# Give some guidance
+#
+echo -e "\\n\\n"
+echo -e "\\tA sample quickstart Flink Job has been created."
+echo -e "\\tSwitch into the directory using"
+echo -e "\\t\\t cd $PACKAGE"
+echo -e "\\tImport the project there using your favorite IDE (Import it as a maven project)"
+echo -e "\\tBuild a jar inside the directory using"
+echo -e "\\t\\t mvn clean package"
+echo -e "\\tYou will find the runnable jar in $PACKAGE/target"
+echo -e "\\tConsult our website if you have any troubles: http://flink.apache.org/community.html#mailing-lists"
+echo -e "\\n\\n"

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/q/sbt-quickstart.sh
----------------------------------------------------------------------
diff --git a/content/q/sbt-quickstart.sh b/content/q/sbt-quickstart.sh
new file mode 100755
index 0000000..78abcb8
--- /dev/null
+++ b/content/q/sbt-quickstart.sh
@@ -0,0 +1,346 @@
+#!/bin/bash
+
+################################################################################
+#  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.
+################################################################################
+
+declare -r TRUE=0
+declare -r FALSE=1
+
+# takes a string and returns true if it seems to represent "yes"
+function isYes() {
+  local x=$1
+  [ $x = "y" -o $x = "Y" -o $x = "yes" ] && echo $TRUE; return
+  echo $FALSE
+}
+
+function mkDir() {
+  local x=$1
+  echo ${x// /-} | tr '[:upper:]' '[:lower:]'
+}
+
+function mkPackage() {
+  local x=$1
+  echo ${x//./\/}
+}
+
+defaultProjectName="Flink Project"
+defaultOrganization="org.example"
+defaultVersion="0.1-SNAPSHOT"
+defaultScalaVersion="2.11.7"
+defaultFlinkVersion="1.1.3"
+
+echo "This script creates a Flink project using Scala and SBT."
+
+while [ $TRUE ]; do
+
+  echo ""
+  read -p "Project name ($defaultProjectName): " projectName
+  projectName=${projectName:-$defaultProjectName}
+  read -p "Organization ($defaultOrganization): " organization
+  organization=${organization:-$defaultOrganization}
+  read -p "Version ($defaultVersion): " version
+  version=${version:-$defaultVersion}
+  read -p "Scala version ($defaultScalaVersion): " scalaVersion
+  scalaVersion=${scalaVersion:-$defaultScalaVersion}
+  read -p "Flink version ($defaultFlinkVersion): " flinkVersion
+  flinkVersion=${flinkVersion:-$defaultFlinkVersion}
+
+  echo ""
+  echo "-----------------------------------------------"
+  echo "Project Name: $projectName"
+  echo "Organization: $organization"
+  echo "Version: $version"
+  echo "Scala version: $scalaVersion"
+  echo "Flink version: $flinkVersion"
+  echo "-----------------------------------------------"
+  read -p "Create Project? (Y/n): " createProject
+  createProject=${createProject:-y}
+
+  [ "$(isYes "$createProject")" = "$TRUE" ] && break
+
+done
+
+directoryName=$(mkDir "$projectName")
+
+echo "Creating Flink project under $directoryName"
+
+mkdir -p ${directoryName}/src/main/{resources,scala}
+mkdir -p ${directoryName}/project
+
+# Create the README file
+
+echo "A Flink application project using Scala and SBT.
+
+To run and test your application use SBT invoke: 'sbt run'
+
+In order to run your application from within IntelliJ, you have to select the classpath of the 'mainRunner' module in the run/debug configurations. Simply open 'Run -> Edit configurations...' and then select 'mainRunner' from the "Use classpath of module" dropbox." > ${directoryName}/README
+
+# Create the build.sbt file
+
+echo "resolvers in ThisBuild ++= Seq(\"Apache Development Snapshot Repository\" at \"https://repository.apache.org/content/repositories/snapshots/\", Resolver.mavenLocal)
+
+name := \"$projectName\"
+
+version := \"$version\"
+
+organization := \"$organization\"
+
+scalaVersion in ThisBuild := \"$scalaVersion\"
+
+val flinkVersion = \"$flinkVersion\"
+
+val flinkDependencies = Seq(
+  \"org.apache.flink\" %% \"flink-scala\" % flinkVersion % \"provided\",
+  \"org.apache.flink\" %% \"flink-streaming-scala\" % flinkVersion % \"provided\")
+
+lazy val root = (project in file(\".\")).
+  settings(
+    libraryDependencies ++= flinkDependencies
+  )
+
+mainClass in assembly := Some(\"$organization.Job\")
+
+// make run command include the provided dependencies
+run in Compile <<= Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run))
+
+// exclude Scala library from assembly
+assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)" > ${directoryName}/build.sbt
+
+# Create idea.sbt file for mainRunner module for IntelliJ
+
+echo "lazy val mainRunner = project.in(file(\"mainRunner\")).dependsOn(RootProject(file(\".\"))).settings(
+  // we set all provided dependencies to none, so that they are included in the classpath of mainRunner
+  libraryDependencies := (libraryDependencies in RootProject(file(\".\"))).value.map{
+    module =>
+      if (module.configurations.equals(Some(\"provided\"))) {
+        module.copy(configurations = None)
+      } else {
+        module
+      }
+  }
+)" > ${directoryName}/idea.sbt
+
+# Create assembly plugin file
+
+echo "addSbtPlugin(\"com.eed3si9n\" % \"sbt-assembly\" % \"0.14.1\")" > ${directoryName}/project/assembly.sbt
+
+# Create package structure
+
+mkdir -p ${directoryName}/src/main/scala/$(mkPackage $organization)
+
+# Create simple job skeleton
+
+echo "package $organization
+
+/**
+ * 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.
+ */
+
+import org.apache.flink.api.scala._
+
+/**
+ * Skeleton for a Flink Job.
+ *
+ * You can also generate a .jar file that you can submit on your Flink
+ * cluster. Just type
+ * {{{
+ *   sbt clean assembly
+ * }}}
+ * in the projects root directory. You will find the jar in
+ * target/scala-2.11/Flink\ Project-assembly-0.1-SNAPSHOT.jar
+ *
+ */
+object Job {
+  def main(args: Array[String]) {
+    // set up the execution environment
+    val env = ExecutionEnvironment.getExecutionEnvironment
+
+    /**
+     * Here, you can start creating your execution plan for Flink.
+     *
+     * Start with getting some data from the environment, like
+     * env.readTextFile(textPath);
+     *
+     * then, transform the resulting DataSet[String] using operations
+     * like:
+     *   .filter()
+     *   .flatMap()
+     *   .join()
+     *   .group()
+     *
+     * and many more.
+     * Have a look at the programming guide:
+     *
+     * http://flink.apache.org/docs/latest/programming_guide.html
+     *
+     * and the examples
+     *
+     * http://flink.apache.org/docs/latest/examples.html
+     *
+     */
+
+
+    // execute program
+    env.execute(\"Flink Scala API Skeleton\")
+  }
+}" > ${directoryName}/src/main/scala/$(mkPackage $organization)/Job.scala
+
+# Create WordCount example
+
+echo "package $organization
+
+/**
+ * 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.
+ */
+
+import org.apache.flink.api.scala._
+
+/**
+ * Implements the \"WordCount\" program that computes a simple word occurrence histogram
+ * over some sample data
+ *
+ * This example shows how to:
+ *
+ *   - write a simple Flink program.
+ *   - use Tuple data types.
+ *   - write and use user-defined functions.
+ */
+object WordCount {
+  def main(args: Array[String]) {
+
+    // set up the execution environment
+    val env = ExecutionEnvironment.getExecutionEnvironment
+
+    // get input data
+    val text = env.fromElements(\"To be, or not to be,--that is the question:--\",
+      \"Whether 'tis nobler in the mind to suffer\", \"The slings and arrows of outrageous fortune\",
+      \"Or to take arms against a sea of troubles,\")
+
+    val counts = text.flatMap { _.toLowerCase.split(\"\\\\W+\") }
+      .map { (_, 1) }
+      .groupBy(0)
+      .sum(1)
+
+    // execute and print result
+    counts.print()
+
+  }
+}
+" > ${directoryName}/src/main/scala/$(mkPackage $organization)/WordCount.scala
+
+# Create SocketTextStreamWordCount example
+
+echo "package $organization
+
+/*
+ * 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.
+ */
+
+import org.apache.flink.streaming.api.scala._
+
+/**
+ * This example shows an implementation of WordCount with data from a text socket.
+ * To run the example make sure that the service providing the text data is already up and running.
+ *
+ * To start an example socket text stream on your local machine run netcat from a command line,
+ * where the parameter specifies the port number:
+ *
+ * {{{
+ *   nc -lk 9999
+ * }}}
+ *
+ * Usage:
+ * {{{
+ *   SocketTextStreamWordCount <hostname> <port> <output path>
+ * }}}
+ *
+ * This example shows how to:
+ *
+ *   - use StreamExecutionEnvironment.socketTextStream
+ *   - write a simple Flink Streaming program in scala.
+ *   - write and use user-defined functions.
+ */
+object SocketTextStreamWordCount {
+
+  def main(args: Array[String]) {
+    if (args.length != 2) {
+      System.err.println(\"USAGE:\nSocketTextStreamWordCount <hostname> <port>\")
+      return
+    }
+
+    val hostName = args(0)
+    val port = args(1).toInt
+
+    val env = StreamExecutionEnvironment.getExecutionEnvironment
+
+    //Create streams for names and ages by mapping the inputs to the corresponding objects
+    val text = env.socketTextStream(hostName, port)
+    val counts = text.flatMap { _.toLowerCase.split(\"\\\\W+\") filter { _.nonEmpty } }
+      .map { (_, 1) }
+      .keyBy(0)
+      .sum(1)
+
+    counts print
+
+    env.execute(\"Scala SocketTextStreamWordCount Example\")
+  }
+
+}
+" > ${directoryName}/src/main/scala/$(mkPackage $organization)/SocketTextStreamWordCount.scala

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/slides.html
----------------------------------------------------------------------
diff --git a/content/slides.html b/content/slides.html
new file mode 100644
index 0000000..38e14d3
--- /dev/null
+++ b/content/slides.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    <title>Apache Flink: Slides</title>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+    <link rel="stylesheet" href="/css/flink.css">
+    <link rel="stylesheet" href="/css/syntax.css">
+
+    <!-- Blog RSS feed -->
+    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>  
+    
+
+    <!-- Main content. -->
+    <div class="container">
+    <div class="row">
+
+      
+     <div id="sidebar" class="col-sm-3">
+          <!-- Top navbar. -->
+    <nav class="navbar navbar-default">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="/">
+              <img alt="Apache Flink" src="/img/navbar-brand-logo.png" width="147px" height="73px">
+            </a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav navbar-main">
+
+            <!-- Downloads -->
+            <li class=""><a class="btn btn-info" href="/downloads.html">Download Flink</a></li>
+
+            <!-- Overview -->
+            <li><a href="/index.html">Home</a></li>
+
+            <!-- Intro -->
+            <li><a href="/introduction.html">Introduction to Flink</a></li>
+
+            <!-- Use cases -->
+            <li><a href="/usecases.html">Flink Use Cases</a></li>
+
+            <!-- Powered by -->
+            <li><a href="/poweredby.html">Powered by Flink</a></li>
+
+            <!-- Ecosystem -->
+            <li><a href="/ecosystem.html">Ecosystem</a></li>
+
+            <!-- Community -->
+            <li><a href="/community.html">Community &amp; Project Info</a></li>
+
+            <!-- Contribute -->
+            <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/"><b>Flink Blog</b></a></li>
+
+            <hr />
+
+
+
+            <!-- Documentation -->
+            <!-- <li>
+              <a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1" target="_blank">Documentation <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li> -->
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation
+                <span class="caret"></span></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1" target="_blank">1.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+                  <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2" target="_blank">1.2 (Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+                </ul>
+              </li>
+
+            <!-- Quickstart -->
+            <li>
+              <a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html" target="_blank">Quickstart <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li>
+
+            <!-- GitHub -->
+            <li>
+              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li>
+
+
+
+
+
+
+          </ul>
+
+
+
+          <ul class="nav navbar-nav navbar-bottom">
+          <hr />
+
+            <!-- FAQ -->
+            <li ><a href="/faq.html">Project FAQ</a></li>
+
+            <!-- Twitter -->
+            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+
+            <!-- Visualizer -->
+            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+
+          </ul>
+        </div><!-- /.navbar-collapse -->
+    </nav>
+
+      </div>
+      <div class="col-sm-9">
+      <div class="row-fluid">
+  <div class="col-sm-12">
+    <h1>Slides</h1>
+
+	<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#training" id="markdown-toc-training">Training</a></li>
+  <li><a href="#flink-forward" id="markdown-toc-flink-forward">Flink Forward</a></li>
+  <li><a href="#slides" id="markdown-toc-slides">Slides</a>    <ul>
+      <li><a href="#2016" id="markdown-toc-2016">2016</a></li>
+      <li><a href="#2015" id="markdown-toc-2015">2015</a></li>
+      <li><a href="#2014" id="markdown-toc-2014">2014</a></li>
+    </ul>
+  </li>
+</ul>
+
+</div>
+
+<h2 id="training">Training</h2>
+
+<p>Currently, there is a free training available by <a href="http://data-artisans.com">dataArtisans</a>. Their <a href="http://dataartisans.github.io/flink-training">training website</a> contains slides and exercices with solutions. The slides are also available on <a href="http://www.slideshare.net/dataArtisans/presentations">SlideShare</a>.</p>
+
+<h2 id="flink-forward">Flink Forward</h2>
+
+<p>Flink Forward 2015 (October 12-13, 2015) was the first conference to bring together the Apache Flink developer and user community. You can find <a href="http://2015.flink-forward.org/?post_type=session">slides and videos</a> of all talks on the Flink Forward 2015 page.</p>
+
+<p>On September 12-14, 2016 the second edition of Flink Forward took place. All <a href="http://flink-forward.org/program/sessions/">slides and videos</a> are available on the Flink Forward 2016 page.</p>
+
+<h2 id="slides">Slides</h2>
+
+<p><strong>Note</strong>: Keep in mind that code examples on slides have a chance of being incomplete or outdated. Always refer to the <a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2">latest documentation</a> for an up to date reference.</p>
+
+<h3 id="2016">2016</h3>
+
+<ul>
+  <li>Kostas Tzoumas &amp; Stephan Ewen: <strong>Keynote -The maturing data streaming ecosystem and Apache Flink\u2019s accelerated growth</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/kostas-tzoumasstpehan-ewen-keynote-the-maturing-data-streaming-ecosystem-and-apache-flinks-accelerated-growth">SlideShare</a></li>
+  <li>Robert Metzger: <strong>Connecting Apache Flink to the World - Reviewing the streaming connectors</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/robert-metzger-connecting-apache-flink-to-the-world-reviewing-the-streaming-connectors">SlideShare</a></li>
+  <li>Till Rohrmann &amp; Fabian Hueske: <strong>Declarative stream processing with StreamSQL and CEP</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/fabian-huesketill-rohrmann-declarative-stream-processing-with-streamsql-and-cep">SlideShare</a></li>
+  <li>Jamie Grier: <strong>Robust Stream Processing with Apache Flink</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/jamie-grier-robust-stream-processing-with-apache-flink">SlideShare</a></li>
+  <li>Jamie Grier: <strong>The Stream Processor as a Database- Building Online Applications directly on Streams</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/jamie-grier-the-stream-processor-as-a-database-building-online-applications-directly-on-streams">SlideShare</a></li>
+  <li>Till Rohramnn: <strong>Dynamic Scaling - How Apache Flink adapts to changing workloads</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/till-rohrmann-dynamic-scaling-how-apache-flink-adapts-to-changing-workloads">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Running Flink Everywhere</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/stephan-ewen-running-flink-everywhere">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Scaling Apache Flink to very large State</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/stephan-ewen-scaling-to-large-state">SlideShare</a></li>
+  <li>Aljoscha Krettek: <strong>The Future of Apache Flink</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/FlinkForward/aljoscha-krettek-the-future-of-apache-flink">SlideShare</a></li>
+  <li>Fabian Hueske: <strong>Taking a look under the hood of Apache Flink\u2019s relational APIs</strong> <em>Flink Forward, Berlin September 2016</em>: <a href="http://www.slideshare.net/fhueske/taking-a-look-under-hood-of-apache-flinks-relational-apis">SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Streaming in the Wild with Apache Flink</strong> <em>Hadoop Summit San Jose, June 2016</em>: <a href="http://www.slideshare.net/KostasTzoumas/streaming-in-the-wild-with-apache-flink-63790942">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>The Stream Processor as the Database - Apache Flink</strong> <em>Berlin Buzzwords, June 2016</em>: <a href="http://www.slideshare.net/stephanewen1/the-stream-processor-as-the-database-apache-flink-berlin-buzzwords">SlideShare</a></li>
+  <li>Till Rohrmann &amp; Fabian Hueske: <strong>Streaming Analytics &amp; CEP - Two sides of the same coin?</strong> <em>Berlin Buzzwords, June 2016</em>: <a href="http://www.slideshare.net/tillrohrmann/streaming-analytics-cep-two-sides-of-the-same-coin">SlideShare</a></li>
+  <li>Robert Metzger: <strong>A Data Streaming Architecture with Apache Flink</strong> <em>Berlin Buzzwords, June 2016</em>: <a href="http://www.slideshare.net/robertmetzger1/a-data-streaming-architecture-with-apache-flink-berlin-buzzwords-2016">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Continuous Processing with Apache Flink</strong> <em>Strata + Hadoop World London, May 2016</em>: <a href="http://www.slideshare.net/stephanewen1/continuous-processing-with-apache-flink-strata-london-2016">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Streaming Analytics with Apache Flink 1.0</strong> <em>Flink NYC Flink, May 2016</em>: <a href="http://www.slideshare.net/stephanewen1/apache-flink-myc-flink-meetup">SlideShare</a></li>
+  <li>Ufuk Celebi: <strong>Unified Stream &amp; Batch Processing with Apache Flink</strong>. <em>Hadoop Summit Dublin, April 2016</em>: <a href="http://www.slideshare.net/HadoopSummit/unified-stream-and-batch-processing-with-apache-flink">SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Counting Elements in Streams</strong>. <em>Strata San Jose, March 2016</em>: <a href="http://www.slideshare.net/KostasTzoumas/apache-flink-at-strata-san-jose-2016">SlideShare</a></li>
+  <li>Jamie Grier: <strong>Extending the Yahoo! Streaming Benchmark</strong>. <em>Flink Washington DC Meetup, March 2016</em>: <a href="http://www.slideshare.net/JamieGrier/extending-the-yahoo-streaming-benchmark">SlideShare</a></li>
+  <li>Jamie Grier: <strong>Stateful Stream Processing at In-Memory Speed</strong>. <em>Flink NYC Meetup, March 2016</em>: <a href="http://www.slideshare.net/JamieGrier/stateful-stream-processing-at-inmemory-speed">SlideShare</a></li>
+  <li>Robert Metzger: <strong>Stream Processing with Apache Flink</strong>. <em>QCon London, March 2016</em>: <a href="http://www.slideshare.net/robertmetzger1/qcon-london-stream-processing-with-apache-flink">SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Batch and Stream Graph Processing with Apache Flink</strong>. <em>Flink and Neo4j Meetup Berlin, March 2016</em>: <a href="http://www.slideshare.net/vkalavri/batch-and-stream-graph-processing-with-apache-flink">SlideShare</a></li>
+  <li>Maximilian Michels: <strong>Stream Processing with Apache Flink</strong>. <em>Big Data Technology Summit, February 2016</em>:
+<a href="http://de.slideshare.net/MaximilianMichels/big-datawarsaw-animated">SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Single-Pass Graph Streaming Analytics with Apache Flink</strong>. <em>FOSDEM, January 2016</em>: <a href="http://www.slideshare.net/vkalavri/gellystream-singlepass-graph-streaming-analytics-with-apache-flink">SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Streaming Done Right</strong>. <em>FOSDEM, January 2016</em>: <a href="http://www.slideshare.net/tillrohrmann/apache-flink-streaming-done-right-fosdem-2016">SlideShare</a></li>
+</ul>
+
+<h3 id="2015">2015</h3>
+
+<ul>
+  <li>Till Rohrmann: <strong>Streaming Data Flow with Apache Flink</strong> <em>(October 29th, 2015)</em>: <a href="http://www.slideshare.net/tillrohrmann/streaming-data-flow-with-apache-flink-paris-flink-meetup-2015-54572718">SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Flink-0.10</strong> <em>(October 28th, 2015)</em>: <a href="http://www.slideshare.net/stephanewen1/flink-010-bay-area-meetup-october-2015">SlideShare</a></li>
+  <li>Robert Metzger: <strong>Architecture of Flink\u2019s Streaming Runtime</strong> <em>(ApacheCon, September 29th, 2015)</em>: <a href="http://www.slideshare.net/robertmetzger1/architecture-of-flinks-streaming-runtime-apachecon-eu-2015">SlideShare</a></li>
+  <li>Robert Metzger: <strong>Click-Through Example for Flink\u2019s KafkaConsumer Checkpointing</strong> <em>(September, 2015)</em>: <a href="http://www.slideshare.net/robertmetzger1/clickthrough-example-for-flinks-kafkaconsumer-checkpointing">SlideShare</a></li>
+  <li>Paris Carbone: <strong>Apache Flink Streaming. Resiliency and Consistency</strong> (Google Tech Talk, August 2015: <a href="http://www.slideshare.net/ParisCarbone/tech-talk-google-on-flink-fault-tolerance-and-ha">SlideShare</a></li>
+  <li>Andra Lungu: <strong>Graph Processing with Apache Flink</strong> <em>(August 26th, 2015)</em>: <a href="http://www.slideshare.net/AndraLungu/flink-gelly-karlsruhe-june-2015">SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Interactive data analytisis with Apache Flink</strong> <em>(June 23rd, 2015)</em>: <a href="http://www.slideshare.net/tillrohrmann/data-analysis-49806564">SlideShare</a></li>
+  <li>Gyula F�ra: <strong>Real-time data processing with Apache Flink</strong> <em>(Budapest Data Forum, June 4th, 2015)</em>: <a href="http://www.slideshare.net/GyulaFra/flink-streaming-budapestdata">SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Machine Learning with Apache Flink</strong> <em>(March 23th, 2015)</em>: <a href="http://www.slideshare.net/tillrohrmann/machine-learning-with-apache-flink">SlideShare</a></li>
+  <li>Marton Balassi: <strong>Flink Streaming</strong> <em>(February 26th, 2015)</em>: <a href="http://www.slideshare.net/MrtonBalassi/flink-streaming-berlin-meetup">SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Large-Scale Graph Processing with Apache Flink</strong> <em>(FOSDEM, 31st January, 2015)</em>: <a href="http://www.slideshare.net/vkalavri/largescale-graph-processing-with-apache-flink-graphdevroom-fosdem15">SlideShare</a></li>
+  <li>Fabian Hueske: <strong>Hadoop Compatibility</strong> <em>(January 28th, 2015)</em>: <a href="http://www.slideshare.net/fhueske/flink-hadoopcompat20150128">SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Apache Flink Overview</strong> <em>(January 14th, 2015)</em>: <a href="http://www.slideshare.net/KostasTzoumas/apache-flink-api-runtime-and-project-roadmap">SlideShare</a></li>
+</ul>
+
+<h3 id="2014">2014</h3>
+
+<ul>
+  <li>Kostas Tzoumas: <strong>Flink Internals</strong> <em>(November 18th, 2014)</em>: <a href="http://www.slideshare.net/KostasTzoumas/flink-internals">SlideShare</a></li>
+  <li>Marton Balassi &amp; Gyula F�ra: <strong>The Flink Big Data Analytics Platform</strong> <em>(ApachecCon, November 11th, 2014)</em>: <a href="http://www.slideshare.net/GyulaFra/flink-apachecon">SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Introduction to Apache Flink</strong> <em>(October 15th, 2014)</em>: <a href="http://www.slideshare.net/tillrohrmann/introduction-to-apache-flink">SlideShare</a></li>
+</ul>
+
+
+  </div>
+</div>
+
+      </div>
+    </div>
+
+    <hr />
+
+    <div class="row">
+      <div class="footer text-center col-sm-12">
+        <p>Copyright � 2014-2016 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
+        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
+      </div>
+    </div>
+    </div><!-- /.container -->
+
+    <!-- Include all compiled plugins (below), or include individual files as needed -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
+    <script src="/js/codetabs.js"></script>
+    <script src="/js/stickysidebar.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/61adc137/content/usecases.html
----------------------------------------------------------------------
diff --git a/content/usecases.html b/content/usecases.html
new file mode 100644
index 0000000..0b4407b
--- /dev/null
+++ b/content/usecases.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    <title>Apache Flink: Flink Use Cases</title>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+    <link rel="stylesheet" href="/css/flink.css">
+    <link rel="stylesheet" href="/css/syntax.css">
+
+    <!-- Blog RSS feed -->
+    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+  </head>
+  <body>  
+    
+
+    <!-- Main content. -->
+    <div class="container">
+    <div class="row">
+
+      
+     <div id="sidebar" class="col-sm-3">
+          <!-- Top navbar. -->
+    <nav class="navbar navbar-default">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="/">
+              <img alt="Apache Flink" src="/img/navbar-brand-logo.png" width="147px" height="73px">
+            </a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav navbar-main">
+
+            <!-- Downloads -->
+            <li class=""><a class="btn btn-info" href="/downloads.html">Download Flink</a></li>
+
+            <!-- Overview -->
+            <li><a href="/index.html">Home</a></li>
+
+            <!-- Intro -->
+            <li><a href="/introduction.html">Introduction to Flink</a></li>
+
+            <!-- Use cases -->
+            <li class="active"><a href="/usecases.html">Flink Use Cases</a></li>
+
+            <!-- Powered by -->
+            <li><a href="/poweredby.html">Powered by Flink</a></li>
+
+            <!-- Ecosystem -->
+            <li><a href="/ecosystem.html">Ecosystem</a></li>
+
+            <!-- Community -->
+            <li><a href="/community.html">Community &amp; Project Info</a></li>
+
+            <!-- Contribute -->
+            <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/"><b>Flink Blog</b></a></li>
+
+            <hr />
+
+
+
+            <!-- Documentation -->
+            <!-- <li>
+              <a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1" target="_blank">Documentation <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li> -->
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation
+                <span class="caret"></span></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1" target="_blank">1.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+                  <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-1.2" target="_blank">1.2 (Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+                </ul>
+              </li>
+
+            <!-- Quickstart -->
+            <li>
+              <a href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html" target="_blank">Quickstart <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li>
+
+            <!-- GitHub -->
+            <li>
+              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
+            </li>
+
+
+
+
+
+
+          </ul>
+
+
+
+          <ul class="nav navbar-nav navbar-bottom">
+          <hr />
+
+            <!-- FAQ -->
+            <li ><a href="/faq.html">Project FAQ</a></li>
+
+            <!-- Twitter -->
+            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+
+            <!-- Visualizer -->
+            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
+
+          </ul>
+        </div><!-- /.navbar-collapse -->
+    </nav>
+
+      </div>
+      <div class="col-sm-9">
+      <div class="row-fluid">
+  <div class="col-sm-12">
+    <h1>Flink Use Cases</h1>
+
+	<p>To demonstrate how Flink can be applied to unbounded datasets, here\u2019s a selection of real-word Flink users and problems they\u2019re solving with Flink.</p>
+
+<p>For more examples, please see the <a href="/poweredby.html">Powered by Flink</a> page.</p>
+
+<ul>
+  <li>
+    <p><strong>Optimization of e-commerce search results in real-time:</strong> Alibaba\u2019s search infrastructure team uses Flink to update product detail and inventory information in real-time, improving relevance for users.</p>
+  </li>
+  <li>
+    <p><strong>Stream processing-as-a-service for data science teams:</strong> King (the creators of Candy Crush Saga) makes real-time analytics available to its data scientists via a Flink-powered internal platform, dramatically shortening the time to insights from game data.</p>
+  </li>
+  <li>
+    <p><strong>Network / sensor monitoring and error detection:</strong> Bouygues Telecom, one of the largest telecom providers in France, uses Flink to monitor its wired and wireless networks, enabling a rapid response to outages throughout the country.</p>
+  </li>
+  <li>
+    <p><strong>ETL for business intelligence infrastructure:</strong> Zalando uses Flink to transform data for easier loading into its data warehouse, converting complex payloads into relatively simple ones and ensuring that analytics end users have faster access to data.</p>
+  </li>
+</ul>
+
+<p>We can tease out common threads from these use cases. Based on the examples above, Flink is well-suited for:</p>
+
+<ol>
+  <li>
+    <p><strong>A variety of (sometimes unreliable) data sources:</strong> When data is generated by millions of different users or devices, it\u2019s safe to assume that some events will arrive out of the order they actually occurred\u2013and in the case of more significant upstream failures, some events might come <em>hours</em> later than they\u2019re supposed to. Late data needs to be handled so that results are accurate.</p>
+  </li>
+  <li>
+    <p><strong>Applications with state:</strong> When applications become more complex than simple filtering or enhancing of single data records, managing state within these applications (e.g., counters, windows of past data, state machines, embedded databases) becomes hard. Flink provides tools so that state is efficient, fault tolerant, and manageable from the outside so you don\u2019t have to build these capabilities yourself.</p>
+  </li>
+  <li>
+    <p><strong>Data that is processed quickly:</strong> There is a focus in these use cases on real-time or near-real-time scenarios, where insights from data should be available at nearly the same moment that the data is generated. Flink is fully capable of meeting these latency requirements when necessary.</p>
+  </li>
+  <li>
+    <p><strong>Data in large volumes:</strong> These programs would need to be distributed across many nodes (in some cases, thousands) to support the required scale. Flink can run on large clusters just as seamlessly as it runs on small ones.</p>
+  </li>
+</ol>
+
+<p>And for more user stories, we recommend the sessions from <a href="http://flink-forward.org/program/sessions/" target="_blank">Flink Forward 2016</a>, the annual Flink user conference.</p>
+
+
+  </div>
+</div>
+
+      </div>
+    </div>
+
+    <hr />
+
+    <div class="row">
+      <div class="footer text-center col-sm-12">
+        <p>Copyright � 2014-2016 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
+        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
+      </div>
+    </div>
+    </div><!-- /.container -->
+
+    <!-- Include all compiled plugins (below), or include individual files as needed -->
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
+    <script src="/js/codetabs.js"></script>
+    <script src="/js/stickysidebar.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>