SlideShare a Scribd company logo
1 of 34
Download to read offline
Introduction to
Austin Data Meetup, September 2015
sblackmon@apache.org
Agenda
-  Problem: Proliferation
-  Activity Streams
-  Apache Streams
-  Compatibility
-  Schemas
-  Resources
Problem:

Proliferation!
S  Silos
S  Standards
S  Schemas
S  SDKs
S  Databases
S  Frameworks
S  Runtimes
Silos

S  It’s challenging to get a composite picture
of a person or organization because data
resides in many systems that are not easily
integrated.
Standards
S  We have no universally adopted standard for
structuring social profiles, or for
transmitting activities across data silos.
S  This is true across web sites, as well
across enterprise applications.
Schemas
S  Most silos make minimal if any effort to to
promote interoperability by publishing
machine-readable schemas for their APIs, or
supporting standardized data formats.
SDKs
S  Many data silos recommend usage of one of
their SDKs to use their data services,
however:
S  These SDKs impose their preferred
libraries (such as HTTP clients and json
libraries) on us without actually making
development easier.
Databases
S  We have an unprecedented range of choices
for how and where we store data.
S  Developers often have a handful they prefer
to use, and aren’t eager to learn the
protocols and assumptions of a new DB.
S  Many applications require a polyglot
architecture to scale.
Frameworks
S  Frameworks can be very helpful when
building scalable systems, but they all
enforce conventions and have constraints.
S  Frameworks lead to lock-in, unless your
team is extra-ordinarily vigilant.
Runtimes
S  Running code in the cloud may be cheaper, but
runtime-specific variation impacts the way we:
S  Package
S  Deploy
S  Configure
S  Monitor
S  Runtimes lead to lock-in, unless your
team is extra-ordinarily vigilant.
Activity Streams

S  A public specification for describing
digital activities and identities in JSON
format
S  1.0 – 2011
S  2.0 - WIP
Activity Streams
Objectives
S  Language agnostic
S  Cross-application interoperability
S  Support for multiple schemas
S  Stream Federation
S  Stream Filtering
Activity Streams
Basics
S  Normalized form for entities and events
S  <actor> did <verb> with <object> (to
<target>) at <published>
S  objectTypes
S  Person, Organization, Image, Video, etc…
S  Verbs
S  Post, Share, Like, etc…
Implementation
Challenges
S  Adoption
S  Industry support has been tepid at best
S  Ambiguity
S  The spec itself is open to interpretation
S  Extensions
S  The spec rightly allows for arbitrary extensions
S  Flexibility
S  As a result, activities from any two providers are just
barely interoperable
S  Validation
S  Data correctness or coherence is not covered by spec
Apache Streams

S  A lightweight (yet scalable) framework for
Activity Streams
S  An SDK for building data-centric JVM
applications
S  A set of patterns for building reliable,
adaptable, data processing pipelines
Philosophies
S  Be Database agnostic
S  Be Runtime agnostic
S  Enforce task and document serializability
S  Documents as the core unit of processing
S  Support any type of documents and
arbitrary metadata
S  Encourage explicit specification of
documents via json schema and xml schema
S  Assist with conversion to and from
activitystrea.ms
Interfaces
S  Provider
S  Task running within Activity Streams deployment that sources
documents for the stream, likely in their original data format.
S  Processor
S  Task running within Activity Streams deployment that transforms
documents, perhaps with a synchronous call to an external system.
S  Persist Reader
S  Task running within an Activity Streams deployment that sources
documents from a file system or database.
S  Persist Writer
S  Task running within an Activity Streams deployment that saves
documents to a file system or database.
Compatibility

Dimensions

S  Providers
S  Persistance
S  Pipelines
S  Runtimes
S  Schemas
Compatibility:

Providers
S  Datasift
S  Facebook
S  GMail
S  Gnip
S  Google Plus
S  Instagram
S  Moreover
S  RSS
S  Sysomos
S  Twitter
S  YouTube
Compatibility: 

Persistance
S  Buffer (file system)
S  Cassandra
S  Elasticsearch
S  Graph (neo4j)
S  HBase
S  HDFS
S  MongoDB
S  Kafka
S  Kinesis
S  S3
Compatibility: 

Pipelines
S  A pipeline is:
S  A directed graph of providers,
processors, and persisters
S  Active pipelines can send each
other documents and/or batches
in real-time via:
S  HTTP Post
S  Message queues (Kafka, Kinesis)
Compatibility:

Runtime Frameworks
S  Docker
S  Dropwizard
S  Pig
S  Spark
S  Storm
Compatibility:

Runtime Roadmap
S  Crunch
S  Flink
S  Logstash
S  NiFi
S  Samza
S  Spark Streaming
S  Twill
Compatibility:

Schemas
S  Schemata are:
S  The presence and absence of fields and structure
S  Different from class and from format
S  Strategies for Schema Management
S  Many-to-Many
S  Many-to-Mine
S  Many-to-One
S  Schema-related Challenges
Schema Management:

Many-To-Many
S  For every provider and type, map and
convert to compatible types from all other
providers
S  This is the default modality for data and
it sucks
Schema Management:

Many-To-Mine
S  Specify internal types, then for every provider and
type: assess, align and convert to preferred
internal representation
S  This is better, but it fails as soon as we want to
interoperate with other departments or organizations
who are all using their own internal schemas
S  Expect to change your internal spec relatively often
in early stages, meaning you probably have to either
S  upgrade your data or
S  guarantee backward compatibility in-application
Schema Management:

Many-To-One
S  For every provider and type, a community
dedicated to the inter-operability of that
dataset sorts out a reasonable mapping to a
relatively static public specification
S  Where the existing public specs are
inadequate, the community can find a way to
establish compatibility via convention
S  Open-source communities and standards
bodies can collaborate for benefit of all
Schema Challenges:

Sharing
S  Business-as-usual:
S  Schemas are often implicit, shared via
unstructured web documentation and language
specific sdks
S  Streams:
S  Streams source code contains json and xml
schemas for many supported providers
S  Anyone can import or extend these schemas
(via HTTP!)
Schema Challenges:

Date-Times
S  Business-as-usual:
S  Here’s a string, have fun!
S  Streams:
S  Every library on the classpath declares its
preferred format(s)
S  Framework resolves any known format and uses
Joda to convert to RFC3339
Schema Challenges:

Versioning
S  Business-as-usual:
S  Schemas change as product and API features
evolve, and everyone just muddles through.
S  Streams:
S  Schemas get published with every release and
every snapshot for benefit of those
responsible for dependent libraries
S  Changes get described in release notes
S  Updates to unit and integration tests
Schema Challenges:

IDE Support
S  Business-as-usual:
S  Import our SDK or GTFO
S  Streams:
S  All streams types have a Serializable POJO
representation
S  Importable with maven to specific version
S  Convertible to ancestor, sibling, and child
types with a cast
S  Convertible to other types with a one-liner
Schema Challenges:

Imports
S  Business-as-usual:
S  Every service is an island
S  Streams:
S  ‘Extends’ capability of json schema allows
for emergence of a web of related types
S  Describe your objects as a delta to base
schemas or a mashup of several
S  Undeclared fields propagate by default
Schema Challenges:

Conversion
S  Business-as-usual:
S  Either get too much type safety or none, take your
pick
S  If you’re lucky, framework helps with serialization
and compression
S  Streams:
S  Includes multiple type conversion options, available
as processors for your streams or singleton utility
classes to embed in your code
S  jackson conversion
S  hocon conversion
S  via java/scala
Resources
S  Website
S  http://streams.incubator.apache.org/
S  Source Code
S  https://github.com/apache/incubator-streams
S  Documentation
S  http://streams.incubator.apache.org/site/0.2-incubating/streams-
project/index.html
S  Examples
S  https://github.com/apache/incubator-streams-examples
S  Examples Documentation
S  http://streams.incubator.apache.org/site/0.2-incubating-SNAPSHOT/
streams-examples/index.html

More Related Content

Viewers also liked

Introduction to Spark SQL & Catalyst
Introduction to Spark SQL & CatalystIntroduction to Spark SQL & Catalyst
Introduction to Spark SQL & CatalystTakuya UESHIN
 
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick WendellApache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick WendellDatabricks
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopDatabricks
 
Enhancements on Spark SQL optimizer by Min Qiu
Enhancements on Spark SQL optimizer by Min QiuEnhancements on Spark SQL optimizer by Min Qiu
Enhancements on Spark SQL optimizer by Min QiuSpark Summit
 
20140908 spark sql & catalyst
20140908 spark sql & catalyst20140908 spark sql & catalyst
20140908 spark sql & catalystTakuya UESHIN
 
Deep Dive : Spark Data Frames, SQL and Catalyst Optimizer
Deep Dive : Spark Data Frames, SQL and Catalyst OptimizerDeep Dive : Spark Data Frames, SQL and Catalyst Optimizer
Deep Dive : Spark Data Frames, SQL and Catalyst OptimizerSachin Aggarwal
 
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...Chris Fregly
 
DataFrame: Spark's new abstraction for data science by Reynold Xin of Databricks
DataFrame: Spark's new abstraction for data science by Reynold Xin of DatabricksDataFrame: Spark's new abstraction for data science by Reynold Xin of Databricks
DataFrame: Spark's new abstraction for data science by Reynold Xin of DatabricksData Con LA
 
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonApache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonChristian Perone
 
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015Chris Fregly
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekVenkata Naga Ravi
 
Deep Dive Into Catalyst: Apache Spark 2.0’s Optimizer
Deep Dive Into Catalyst: Apache Spark 2.0’s OptimizerDeep Dive Into Catalyst: Apache Spark 2.0’s Optimizer
Deep Dive Into Catalyst: Apache Spark 2.0’s OptimizerDatabricks
 
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...Databricks
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Databricks
 
Robust and Scalable ETL over Cloud Storage with Apache Spark
Robust and Scalable ETL over Cloud Storage with Apache SparkRobust and Scalable ETL over Cloud Storage with Apache Spark
Robust and Scalable ETL over Cloud Storage with Apache SparkDatabricks
 
Enhancing Spark SQL Optimizer with Reliable Statistics
Enhancing Spark SQL Optimizer with Reliable StatisticsEnhancing Spark SQL Optimizer with Reliable Statistics
Enhancing Spark SQL Optimizer with Reliable StatisticsJen Aman
 
Making Structured Streaming Ready for Production
Making Structured Streaming Ready for ProductionMaking Structured Streaming Ready for Production
Making Structured Streaming Ready for ProductionDatabricks
 
Dive into Catalyst
Dive into CatalystDive into Catalyst
Dive into CatalystCheng Lian
 

Viewers also liked (20)

Introduction to Spark SQL & Catalyst
Introduction to Spark SQL & CatalystIntroduction to Spark SQL & Catalyst
Introduction to Spark SQL & Catalyst
 
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick WendellApache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van Hovell
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
 
Enhancements on Spark SQL optimizer by Min Qiu
Enhancements on Spark SQL optimizer by Min QiuEnhancements on Spark SQL optimizer by Min Qiu
Enhancements on Spark SQL optimizer by Min Qiu
 
20140908 spark sql & catalyst
20140908 spark sql & catalyst20140908 spark sql & catalyst
20140908 spark sql & catalyst
 
Deep Dive : Spark Data Frames, SQL and Catalyst Optimizer
Deep Dive : Spark Data Frames, SQL and Catalyst OptimizerDeep Dive : Spark Data Frames, SQL and Catalyst Optimizer
Deep Dive : Spark Data Frames, SQL and Catalyst Optimizer
 
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...
Paris Spark Meetup Oct 26, 2015 - Spark After Dark v1.5 - Best of Advanced Ap...
 
Spark sql meetup
Spark sql meetupSpark sql meetup
Spark sql meetup
 
DataFrame: Spark's new abstraction for data science by Reynold Xin of Databricks
DataFrame: Spark's new abstraction for data science by Reynold Xin of DatabricksDataFrame: Spark's new abstraction for data science by Reynold Xin of Databricks
DataFrame: Spark's new abstraction for data science by Reynold Xin of Databricks
 
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and PythonApache Spark - Intro to Large-scale recommendations with Apache Spark and Python
Apache Spark - Intro to Large-scale recommendations with Apache Spark and Python
 
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeek
 
Deep Dive Into Catalyst: Apache Spark 2.0’s Optimizer
Deep Dive Into Catalyst: Apache Spark 2.0’s OptimizerDeep Dive Into Catalyst: Apache Spark 2.0’s Optimizer
Deep Dive Into Catalyst: Apache Spark 2.0’s Optimizer
 
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...
From DataFrames to Tungsten: A Peek into Spark's Future @ Spark Summit San Fr...
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
 
Robust and Scalable ETL over Cloud Storage with Apache Spark
Robust and Scalable ETL over Cloud Storage with Apache SparkRobust and Scalable ETL over Cloud Storage with Apache Spark
Robust and Scalable ETL over Cloud Storage with Apache Spark
 
Enhancing Spark SQL Optimizer with Reliable Statistics
Enhancing Spark SQL Optimizer with Reliable StatisticsEnhancing Spark SQL Optimizer with Reliable Statistics
Enhancing Spark SQL Optimizer with Reliable Statistics
 
Making Structured Streaming Ready for Production
Making Structured Streaming Ready for ProductionMaking Structured Streaming Ready for Production
Making Structured Streaming Ready for Production
 
Dive into Catalyst
Dive into CatalystDive into Catalyst
Dive into Catalyst
 

Similar to Apache streams 2015

REST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIsREST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIsHiranya Jayathilaka
 
Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Jonathan Seidman
 
Release webinar: Sansa and Ontario
Release webinar: Sansa and OntarioRelease webinar: Sansa and Ontario
Release webinar: Sansa and OntarioBigData_Europe
 
Present and future of unified, portable and efficient data processing with Ap...
Present and future of unified, portable and efficient data processing with Ap...Present and future of unified, portable and efficient data processing with Ap...
Present and future of unified, portable and efficient data processing with Ap...DataWorks Summit
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
 
20160317 - PAZUR - PowerBI & R
20160317  - PAZUR - PowerBI & R20160317  - PAZUR - PowerBI & R
20160317 - PAZUR - PowerBI & RŁukasz Grala
 
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...HostedbyConfluent
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarShubhra Kar
 
Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...Ákos Horváth
 
Present and future of unified, portable, and efficient data processing with A...
Present and future of unified, portable, and efficient data processing with A...Present and future of unified, portable, and efficient data processing with A...
Present and future of unified, portable, and efficient data processing with A...DataWorks Summit
 
IncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery Labs
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaGuido Schmutz
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Serverswebhostingguy
 
Schema Registry - Set Your Data Free
Schema Registry - Set Your Data FreeSchema Registry - Set Your Data Free
Schema Registry - Set Your Data FreeDataWorks Summit
 
Flexible metadata schemes for research data repositories - CLARIN Conference'21
Flexible metadata schemes for research data repositories - CLARIN Conference'21Flexible metadata schemes for research data repositories - CLARIN Conference'21
Flexible metadata schemes for research data repositories - CLARIN Conference'21vty
 
Flexible metadata schemes for research data repositories - Clarin Conference...
Flexible metadata schemes for research data repositories  - Clarin Conference...Flexible metadata schemes for research data repositories  - Clarin Conference...
Flexible metadata schemes for research data repositories - Clarin Conference...Vyacheslav Tykhonov
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked worldIntegration Meetups
 

Similar to Apache streams 2015 (20)

Apache JClouds
Apache JCloudsApache JClouds
Apache JClouds
 
REST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIsREST Coder: Auto Generating Client Stubs and Documentation for REST APIs
REST Coder: Auto Generating Client Stubs and Documentation for REST APIs
 
Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017
 
Release webinar: Sansa and Ontario
Release webinar: Sansa and OntarioRelease webinar: Sansa and Ontario
Release webinar: Sansa and Ontario
 
Present and future of unified, portable and efficient data processing with Ap...
Present and future of unified, portable and efficient data processing with Ap...Present and future of unified, portable and efficient data processing with Ap...
Present and future of unified, portable and efficient data processing with Ap...
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
20160317 - PAZUR - PowerBI & R
20160317  - PAZUR - PowerBI & R20160317  - PAZUR - PowerBI & R
20160317 - PAZUR - PowerBI & R
 
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns Webinar
 
Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...
 
Present and future of unified, portable, and efficient data processing with A...
Present and future of unified, portable, and efficient data processing with A...Present and future of unified, portable, and efficient data processing with A...
Present and future of unified, portable, and efficient data processing with A...
 
Sparkflows.io
Sparkflows.ioSparkflows.io
Sparkflows.io
 
IncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptxIncQuery_presentation_Incose_EMEA_WSEC.pptx
IncQuery_presentation_Incose_EMEA_WSEC.pptx
 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
 
Introducing Oslo
Introducing OsloIntroducing Oslo
Introducing Oslo
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Servers
 
Schema Registry - Set Your Data Free
Schema Registry - Set Your Data FreeSchema Registry - Set Your Data Free
Schema Registry - Set Your Data Free
 
Flexible metadata schemes for research data repositories - CLARIN Conference'21
Flexible metadata schemes for research data repositories - CLARIN Conference'21Flexible metadata schemes for research data repositories - CLARIN Conference'21
Flexible metadata schemes for research data repositories - CLARIN Conference'21
 
Flexible metadata schemes for research data repositories - Clarin Conference...
Flexible metadata schemes for research data repositories  - Clarin Conference...Flexible metadata schemes for research data repositories  - Clarin Conference...
Flexible metadata schemes for research data repositories - Clarin Conference...
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked world
 

Recently uploaded

Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...gajnagarg
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...amitlee9823
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...gajnagarg
 
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...gajnagarg
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men 🔝Ongole🔝 Escorts S...
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men  🔝Ongole🔝   Escorts S...➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men  🔝Ongole🔝   Escorts S...
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men 🔝Ongole🔝 Escorts S...amitlee9823
 
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...gajnagarg
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...amitlee9823
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...gajnagarg
 

Recently uploaded (20)

Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
 
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...
Just Call Vip call girls Mysore Escorts ☎️9352988975 Two shot with one girl (...
 
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men 🔝Ongole🔝 Escorts S...
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men  🔝Ongole🔝   Escorts S...➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men  🔝Ongole🔝   Escorts S...
➥🔝 7737669865 🔝▻ Ongole Call-girls in Women Seeking Men 🔝Ongole🔝 Escorts S...
 
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls Palakkad Escorts ☎️9352988975 Two shot with one girl...
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...
Just Call Vip call girls kakinada Escorts ☎️9352988975 Two shot with one girl...
 

Apache streams 2015

  • 1. Introduction to Austin Data Meetup, September 2015 sblackmon@apache.org
  • 2. Agenda -  Problem: Proliferation -  Activity Streams -  Apache Streams -  Compatibility -  Schemas -  Resources
  • 3. Problem:
 Proliferation! S  Silos S  Standards S  Schemas S  SDKs S  Databases S  Frameworks S  Runtimes
  • 4. Silos
 S  It’s challenging to get a composite picture of a person or organization because data resides in many systems that are not easily integrated.
  • 5. Standards S  We have no universally adopted standard for structuring social profiles, or for transmitting activities across data silos. S  This is true across web sites, as well across enterprise applications.
  • 6. Schemas S  Most silos make minimal if any effort to to promote interoperability by publishing machine-readable schemas for their APIs, or supporting standardized data formats.
  • 7. SDKs S  Many data silos recommend usage of one of their SDKs to use their data services, however: S  These SDKs impose their preferred libraries (such as HTTP clients and json libraries) on us without actually making development easier.
  • 8. Databases S  We have an unprecedented range of choices for how and where we store data. S  Developers often have a handful they prefer to use, and aren’t eager to learn the protocols and assumptions of a new DB. S  Many applications require a polyglot architecture to scale.
  • 9. Frameworks S  Frameworks can be very helpful when building scalable systems, but they all enforce conventions and have constraints. S  Frameworks lead to lock-in, unless your team is extra-ordinarily vigilant.
  • 10. Runtimes S  Running code in the cloud may be cheaper, but runtime-specific variation impacts the way we: S  Package S  Deploy S  Configure S  Monitor S  Runtimes lead to lock-in, unless your team is extra-ordinarily vigilant.
  • 11. Activity Streams
 S  A public specification for describing digital activities and identities in JSON format S  1.0 – 2011 S  2.0 - WIP
  • 12. Activity Streams Objectives S  Language agnostic S  Cross-application interoperability S  Support for multiple schemas S  Stream Federation S  Stream Filtering
  • 13. Activity Streams Basics S  Normalized form for entities and events S  <actor> did <verb> with <object> (to <target>) at <published> S  objectTypes S  Person, Organization, Image, Video, etc… S  Verbs S  Post, Share, Like, etc…
  • 14. Implementation Challenges S  Adoption S  Industry support has been tepid at best S  Ambiguity S  The spec itself is open to interpretation S  Extensions S  The spec rightly allows for arbitrary extensions S  Flexibility S  As a result, activities from any two providers are just barely interoperable S  Validation S  Data correctness or coherence is not covered by spec
  • 15. Apache Streams
 S  A lightweight (yet scalable) framework for Activity Streams S  An SDK for building data-centric JVM applications S  A set of patterns for building reliable, adaptable, data processing pipelines
  • 16. Philosophies S  Be Database agnostic S  Be Runtime agnostic S  Enforce task and document serializability S  Documents as the core unit of processing S  Support any type of documents and arbitrary metadata S  Encourage explicit specification of documents via json schema and xml schema S  Assist with conversion to and from activitystrea.ms
  • 17. Interfaces S  Provider S  Task running within Activity Streams deployment that sources documents for the stream, likely in their original data format. S  Processor S  Task running within Activity Streams deployment that transforms documents, perhaps with a synchronous call to an external system. S  Persist Reader S  Task running within an Activity Streams deployment that sources documents from a file system or database. S  Persist Writer S  Task running within an Activity Streams deployment that saves documents to a file system or database.
  • 19. Compatibility:
 Providers S  Datasift S  Facebook S  GMail S  Gnip S  Google Plus S  Instagram S  Moreover S  RSS S  Sysomos S  Twitter S  YouTube
  • 20. Compatibility: 
 Persistance S  Buffer (file system) S  Cassandra S  Elasticsearch S  Graph (neo4j) S  HBase S  HDFS S  MongoDB S  Kafka S  Kinesis S  S3
  • 21. Compatibility: 
 Pipelines S  A pipeline is: S  A directed graph of providers, processors, and persisters S  Active pipelines can send each other documents and/or batches in real-time via: S  HTTP Post S  Message queues (Kafka, Kinesis)
  • 22. Compatibility:
 Runtime Frameworks S  Docker S  Dropwizard S  Pig S  Spark S  Storm
  • 23. Compatibility:
 Runtime Roadmap S  Crunch S  Flink S  Logstash S  NiFi S  Samza S  Spark Streaming S  Twill
  • 24. Compatibility:
 Schemas S  Schemata are: S  The presence and absence of fields and structure S  Different from class and from format S  Strategies for Schema Management S  Many-to-Many S  Many-to-Mine S  Many-to-One S  Schema-related Challenges
  • 25. Schema Management:
 Many-To-Many S  For every provider and type, map and convert to compatible types from all other providers S  This is the default modality for data and it sucks
  • 26. Schema Management:
 Many-To-Mine S  Specify internal types, then for every provider and type: assess, align and convert to preferred internal representation S  This is better, but it fails as soon as we want to interoperate with other departments or organizations who are all using their own internal schemas S  Expect to change your internal spec relatively often in early stages, meaning you probably have to either S  upgrade your data or S  guarantee backward compatibility in-application
  • 27. Schema Management:
 Many-To-One S  For every provider and type, a community dedicated to the inter-operability of that dataset sorts out a reasonable mapping to a relatively static public specification S  Where the existing public specs are inadequate, the community can find a way to establish compatibility via convention S  Open-source communities and standards bodies can collaborate for benefit of all
  • 28. Schema Challenges:
 Sharing S  Business-as-usual: S  Schemas are often implicit, shared via unstructured web documentation and language specific sdks S  Streams: S  Streams source code contains json and xml schemas for many supported providers S  Anyone can import or extend these schemas (via HTTP!)
  • 29. Schema Challenges:
 Date-Times S  Business-as-usual: S  Here’s a string, have fun! S  Streams: S  Every library on the classpath declares its preferred format(s) S  Framework resolves any known format and uses Joda to convert to RFC3339
  • 30. Schema Challenges:
 Versioning S  Business-as-usual: S  Schemas change as product and API features evolve, and everyone just muddles through. S  Streams: S  Schemas get published with every release and every snapshot for benefit of those responsible for dependent libraries S  Changes get described in release notes S  Updates to unit and integration tests
  • 31. Schema Challenges:
 IDE Support S  Business-as-usual: S  Import our SDK or GTFO S  Streams: S  All streams types have a Serializable POJO representation S  Importable with maven to specific version S  Convertible to ancestor, sibling, and child types with a cast S  Convertible to other types with a one-liner
  • 32. Schema Challenges:
 Imports S  Business-as-usual: S  Every service is an island S  Streams: S  ‘Extends’ capability of json schema allows for emergence of a web of related types S  Describe your objects as a delta to base schemas or a mashup of several S  Undeclared fields propagate by default
  • 33. Schema Challenges:
 Conversion S  Business-as-usual: S  Either get too much type safety or none, take your pick S  If you’re lucky, framework helps with serialization and compression S  Streams: S  Includes multiple type conversion options, available as processors for your streams or singleton utility classes to embed in your code S  jackson conversion S  hocon conversion S  via java/scala
  • 34. Resources S  Website S  http://streams.incubator.apache.org/ S  Source Code S  https://github.com/apache/incubator-streams S  Documentation S  http://streams.incubator.apache.org/site/0.2-incubating/streams- project/index.html S  Examples S  https://github.com/apache/incubator-streams-examples S  Examples Documentation S  http://streams.incubator.apache.org/site/0.2-incubating-SNAPSHOT/ streams-examples/index.html