First Example for Edgent Next
diff --git a/next/pom.xml b/next/pom.xml
new file mode 100644
index 0000000..acc51d2
--- /dev/null
+++ b/next/pom.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>8</source>
+          <target>8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <parent>
+    <groupId>org.apache.edgent</groupId>
+    <artifactId>edgent-parent</artifactId>
+    <version>1.3.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>edgent-next</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Next Generation Apache Edgent</name>
+
+  <dependencies>
+  </dependencies>
+
+</project>
diff --git a/next/src/main/java/org/apache/edgent/next/Example.java b/next/src/main/java/org/apache/edgent/next/Example.java
new file mode 100644
index 0000000..5787589
--- /dev/null
+++ b/next/src/main/java/org/apache/edgent/next/Example.java
@@ -0,0 +1,97 @@
+/*
+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 org.apache.edgent.next;
+
+import java.util.concurrent.TimeUnit;
+
+public class Example {
+
+    public static void main(String[] args) {
+        // Example 1 - Generic handler
+        from("s7://192.168.167.210/0/0")
+            .scrape(10, TimeUnit.SECONDS)
+                .field("%DB500.DBX10:BOOL")
+                .field("%DB500.DBX10:BOOL", Boolean.class)
+            .handle((field, result, clazz) -> System.out.println(field + ": " + result));
+
+        // Example 2 - Store to JDBC
+        from("s7://192.168.167.210/0/0")
+            .scrape(10, TimeUnit.SECONDS)
+                .field("%DB500.DBX10:BOOL")
+                .field("%DB500.DBX10:BOOL", Boolean.class)
+            .transform(new JsonTransformer())
+            .to(new JdbcSink());
+
+        // Example 3 - Store to InfluxDB
+        from("s7://192.168.167.210/0/0")
+            .scrape(10, TimeUnit.SECONDS)
+                .field("%DB500.DBX10:BOOL")
+                .field("%DB500.DBX10:BOOL", Boolean.class)
+            .to(new InfluxDbSink());
+
+        // Example 4 - CRUNCH
+        from("s7://192.168.167.210/0/0")
+            .scrape(10, TimeUnit.SECONDS)
+                .field("%DB500.DBX10:BOOL", Boolean.class).analyze()
+                    .flank(UP).handle(...)
+    }
+
+    public static ScraperBuilder from(String plcConnection) {
+        return new ScraperBuilder(plcConnection);
+    }
+
+    public static class ScraperBuilder {
+        private final String connection;
+
+        public ScraperBuilder(String connection) {
+            this.connection = connection;
+        }
+
+        public FieldCollector scrape(int time, TimeUnit unit) {
+            return new FieldCollector(this);
+        }
+    }
+
+    private static class FieldCollector {
+        private final ScraperBuilder scraperBuilder;
+
+        public FieldCollector(ScraperBuilder scraperBuilder) {
+            this.scraperBuilder = scraperBuilder;
+        }
+
+        private FieldCollector field(String fieldAdress) {
+            return this;
+        }
+
+        private FieldCollector field(String fieldAdress, Class<?> clazz) {
+            return this;
+        }
+
+        private void handle(ResultHandler handler) {
+
+        }
+    }
+
+    @FunctionalInterface
+    private interface ResultHandler {
+
+        void handle(String fieldName, Object result, Class<?> clazz);
+
+    }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 177a29f..d82045b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,6 +100,7 @@
     <module>test</module>
     <module>utils</module>
     <module>platforms</module>
+    <module>next</module>
   </modules>
 
   <build>