SlideShare a Scribd company logo
1 of 63
Download to read offline
Director, WSO2
Patterns for Building Streaming Apps
Sriskandarajah Suhothayan
Goal
● Business scenarios for building streaming apps
● Why streaming patterns
● 11 patterns of building streaming apps
● When to use streaming patterns
● How WSO2 Stream Processor can help you to build
streaming apps
● How to develop, deploy and monitor streaming apps
Why Streaming?
Real-time
Near
Real-time
Offline
Constant low
milliseconds &
under
Low milliseconds
to
seconds
10s seconds
to
minutes
● A stream is series of events
● Almost all new data is streaming
● Detects conditions quickly
Image Source : https://www.flickr.com/photos/plusbeautumeurs/33307049175
Why Streaming
Apps?
● Identify perishable insights
● Continuous integration
● Orchestration of business
processes
● Embedded execution of code
● Sense, think, and act in real
time
- Forrester
1. Event-driven data integration
2. Real-time ETL
3. Generating event streams from passive data
4. Streaming data routing
5. Notification management
6. Real-time decision making
7. KPI monitoring
8. Citizens integration on streaming data
9. Dashboarding and reporting
Business Scenarios for Streaming
Patterns
Streaming Apps
● To understand what stream
processing can do!
● Easy to solve common problems
in stream processing
● Where to use what?
● Learn best practices
Why Patterns for Streaming?
Image Source : https://www.flickr.com/photos/laurawoodillustration/6986871419
Streaming Engine
1. Data collection
2. Data cleansing
3. Data transformation
4. Data enrichment
5. Data summarization
6. Rule processing
7. Machine learning & artificial intelligence
8. Data pipelining
9. Data publishing
10. On-demand processing
11. Data presentation
Stream Processing Patterns
Data
enrichment
(DB, Service)
Streaming App Patterns
Stream Processing
Data Collection
Data
Summarization &
Rule Processing
Query API
Data
Enrichment
(DB, Service)
ML
Models
Data Cleansing
& Data
Transformation
Streaming Data
Integration
Streaming Data
Analytics
Data
Pipelining
On demand
processing
Machine
Learning &
Artificial
Intelligence
Data
Publishing
Data
Presentation
1. Data collection
1. Data collection
Types of data collection
● Subscription to the event source
○ Kafka, Rabbitmq, JMS, Amazon SQS, MQTT, Twitter
● Receiving messages
○ HTTP, TCP, Email, WebSocket
● Extracting data
○ Change Data Capture (CDC), File
Supported data formats
● JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event
1. Data collection
Default JSON mapping
Custom JSON mapping
@source(type = mqtt, …, @map(type = json))
define stream ProductionStream(name string, amount double);
@source(type = mqtt, …, @map(type = json, @attribute(“$.id”, “$.count”)))
define stream ProductionStream(name string, amount double);
{“event”:{“name”:“cake”, “amount”:20}}
{“id”:“cake”, “count”:20}
2. Data cleansing
2. Data cleansing
Types of data cleansing
● Filtering
○ value ranges
○ string matching
○ regex
● Setting Defaults
○ Null checks
○ If-then-else clouces
define stream ProductionStream
(name string, amount double);
from ProductionStream [name==“cake”]
select name, ifThenElse ( amount<0, 0.0,
amount) as amount
insert into CleansedProductionStream;
3. Data transformation
Data type of Stream Processor is Tuple
Array[] containing values of
string, int, float, long, double, bool, object
JSON, XML,
Text, Binary,
Key-value,
CSV, Avro,
WSO2Event
Tuple
JSON, XML,
Text, Binary,
Key-value,
CSV, Avro,
WSO2Event
3. Data transformation
Contract message from Tuple
● Output mapping
● JSON processing functions
● Map functions
● String concats
3. Data transformation
Extract data to Tuple
● Input mapping
● JSON processing functions
● Map functions
● String manipulation
define stream ProductionStream (json string);
from ProductionInputStream
select json:getString(json,"$.name") as name,
json:getDouble(json,"$.amount") as amount
insert into ProductionStream;
Data Extraction
Transform data by
● Inline operations
○ math & logical operations
● Inbuilt function calls
○ 60+ extensions
● Custom function calls
○ Java, JS, R
3. Data transformation
myFunction(item, price) as discount
define function myFunction[lang_name] return return_type {
function_body
};
str:upper(ItemID) as IteamCode,
amount * price as cost
4. Data enrichment
Type of data enrichment
● Datastore integration
○ RDBMS (MySQL, MSSQL, Oracle, Progress)
○ NoSQL (MongoDB, HBase, Cassandra)
○ In-memory grid (Hazelcast, Redis)
○ Indexing systems (Solr, Elasticsearch)
○ In-memory (in-memory table, window)
● Service integration
○ HTTP services
4. Data enrichment
Enriching data from table (store)
4. Data enrichment
define stream ProductionStream(idNum int, amount double);
@store(type=‘rdbms’, … )
@primaryKey(‘id’)
@Index(name)
define table ProductionInfoTable(id int, name string);
from ProductionStream as s join ProductionInfoTable as t
on s.idNum == t.id
select t.name, s.amount
insert into ProductionInfoStream;
Table
Join
Enriching data from HTTP Service Call
● Non blocking service calls
● Handle error conditions
4. Data enrichment
2**
4**
HTTP-Request
HTTP-Response
5. Data summarization
Type of data summarization
● Time based
○ Sliding time window
○ Tumbling time window
○ Multiple time intervals (secs to years)
● Event count based
○ Sliding length window
○ Tumbling length window
● Session based
● Frequency based
5. Data summarization
Type of aggregations
● Sum
● Count
● Min
● Max
● distinctCount
● stdDev
Multiple time intervals based summarization
● Aggregation on every second, minute, hour, … , year
● Built using 𝝀 architecture
● Real-time data in-memory
● Historic data from disk
● Works with RDBMs data stores
5. Data summarization
from ProductionAggregation
within "2018-12-10", "2018-12-13”
per "days"
select sales;
6. Rule processing
Type of predefined rules
● Rules on single event
○ If-then-else, match, etc.
● Rules on collection of events
○ Summarization
○ Join with window or table
● Rules based on event occurrence order
○ Pattern detection
○ Trend (sequence) detection
○ Non-occurrence of event
6. Rule processing
No occurrence of event pattern detection
6. Rule processing
define stream DeliveryStream (orderId string, amount double);
define stream PaymentStream (orderId string, amount double);
from every (e1 = DeliveryStream)
-> not PaymentStream [orderId == e1.orderId] for 15 min
select e1.orderId, e1.amount
insert into PaymentDelayedStream ;
7. Machine learning &
artificial intelligence
Type of ML/AI processing
● Anomaly detection
○ Markov model
● Serving pre-created ML models
○ PMML (build from Python, R, Spark, H2O.ai, etc)
○ TensorFlow
● Online machine learning
○ Clustering
○ Classification
○ Regression
7. Machine learning & artificial intelligence
from CheckoutStream
#pmml:predict(“/home/user/ml.model”,userId)
insert into ShoppingPrediction;
Model Serving
8. Data pipelining
8. Data pipelining
Types of data pipelines
● Sequential data processing
○ Default behaviour
○ All queries are processed by the data retrieval thread
● Asynchronous data processing
○ Parallelly processed as event batches
○ @Async(buffer.size='256', workers='2', batch.size.max='5')
● Scatter and gather
○ json:tokenize() -> process->window.batch() -> json:setElement()
○ str:tokenize() ->process-> window.batch() -> str:groupConcat()
● Sequential data processing
○ Default behavior
○ All queries are processed by the data retrieval thread
8. Data pipelining
1
2
● Asynchronous data processing
○ Parallelly processed as event batches
8. Data pipelining
2
@Async(buffer.size='256', workers='2', batch.size.max='5')
define stream ProductionStream(name string, amount double);
2
11
● Scheduled data processing
○ Periodically trigger an execution flow
○ Based on
■ Give time period
■ Cron expression
8. Data pipelining
define trigger FiveMinTriggerStream at every 5 min;
● Scatter and gather
○ Divide into sub-elements, process each and combine the results
○ E.g.
○ json:tokenize() -> process -> window.batch() -> json:setElement()
○ str:tokenize() -> process -> window.batch() -> str:groupConcat()
8. Data pipelining
● Dynamic query addition
○ Connect multiple Siddhi Apps (Collection of queries)
via in-memory source and sink
8. Data pipelining
Input Siddhi
App
Dynamic
Siddhi App 1
Dynamic
Siddhi App 2
Dynamic
Siddhi App 3
Output
Siddhi App
In-memory
source - sink
In-memory
source - sink
9. Data publishing
9. Data publishing
Types of data publishing
● Sending data to the event sinks
○ Kafka, Rabbitmq, JMS, Amazon SQS, MQTT,
HTTP, TCP, Email, WebSocket, File
○ Supported formats
■ JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event
● Storing data to Data Stores
○ RDBMS, MongoDB, HBase, Cassandra,
Hazelcast, Redis, Solr, Elasticsearch
○ Supported operation
■ Insert, Delete, Update, (& Read)
9. Data publishing
Default JSON mapping
Custom JSON mapping
@sink(type = mqtt, …, @map(type = json))
define stream ProductionStream(name string, amount double);
@sink(type = mqtt, …, @map(type = json,
@payload('''{“id”:“{{name}}”, “count”:{{amount}} }''' )))
define stream ProductionStream(name string, amount double);
{“event”:{“name”:“cake”, “amount”:20}}
{“id”:“cake”, “count”:20}
10. On-demand processing
10. On-demand processing
● Processing stored data using REST APIs
○ Data stores (RDBMS, NoSQL, etc)
○ Multiple time inviavel aggregation
○ In-memory windows, tables
10. On-demand processing
● Running streaming queries via REST APIs
○ Synchronous Request-Response loopback
○ Understand current state of
the environment
11. Data presentation
11. Data presentation
Data loaded to Data Stores
● RDBMS, NoSQL & In-Memory stores
Exposed via REST APIs
● On-demand data query APIs
● Running streaming queries or query data stores
curl -X POST https://localhost:7443/stores/query
-H "content-type: application/json"
-u "admin:admin"
-d '{"appName" : "RoomService",
"query" : "from RoomTypeTable select *" }'
-k
11. Data presentation
Presented as Reports
● PDF, CSV
● Report generation
○ On demand & periodic reports
using Jasper reports
○ Exported from dashboard
11. Data presentation
Visualized using dashboard
● Widget generation
● Fine-grained permissions
○ Dashboard level
○ Widget level
○ Data level
● Localization
● Inter widget
communication
● Shareable dashboards
1. Data collection
2. Data cleansing
3. Data transformation
4. Data enrichment
5. Data summarization
6. Rule processing
7. Machine learning & artificial intelligence
8. Data pipelining
9. Data publishing
10. On-demand processing
11. Data presentation
Stream Processing Patterns
Building & Managing
Streaming Apps
Developer Studio
for Streaming Apps
Drag n drop
query builder &
source editor
Edit, Debug, Simulate, & Test
All in one place!
Citizen Integration
for Streaming Data
Build rule templates
using editor
Configure rules via
form based UI
for non technical users
Rule Building
Rule Configuration
Deploying
Streaming Apps
Stream Processing in the Edge or Emadded
• Streaming processing at the
sources
– Being embedded in Java or
Python applications
– Being at the edge as a
sidecar
– Micro Stream Processor
• Local decision making to build
intelligent systems
• ETL at the source
• Event routing
• Edge analytics
Dashboard
Notification
Invocation
Data Store
Event
Store
Event Source
Stream Processor
Siddhi
App
Stream Processor
Siddhi App
Siddhi App
Siddhi App
Feedback
High Availability with 2 Nodes
• 2 node minimum HA
– Process upto 100k
events/sec
– While most other stream
processing systems need
around 5+ nodes
• Zero event loss
• Incremental state persistence
and recovery
• Multi data center support
Stream Processor
Stream Processor
Event Sources
Dashboard
Notification
Invocation
Data Source
Siddhi App
Siddhi App
Siddhi App
Siddhi App
Siddhi App
Siddhi App
Event
Store
• Exactly-once
processing
• Fault tolerance
• Highly scalable
• No back pressure
• Distributed via
annotations
• Native support for
Kubernetes
Distributed Deployment
Monitoring
Streaming Apps
Status Dashboard
Monitor Resource Nodes and Siddhi Apps
• Understand performance via
– Throughput
– Latency
– CPU, Memory utilizations
• Monitor various scales
– Node level
– Siddhi app level
– Siddhi query level
To Summarize
● Lightweight, lean, and high performance
● Best suited for
○ Streaming Data Integration
○ Streaming Analytics
● Streaming SQL & graphical drag-and-drop editor
● Multiple deployment options
○ Process data at the edge (java, python)
○ Micro Stream Processing
○ High availability with 2 nodes
○ Highly scalable distributed deployments
● Support for streaming ML & Long running aggregations
● Monitoring tools and citizen integration options
WSO2 Stream Processor
1. Event-driven data integration
2. Real-time ETL
3. Generating event streams from passive data
4. Streaming data routing
5. Notification management
6. Real-time decision making
7. KPI monitoring
8. Citizens integration on streaming data
9. Dashboarding and reporting
Business Scenarios for Streaming
● Business scenarios for building streaming apps
● Why streaming patterns
● 11 patterns of building streaming apps
● When to use streaming patterns
● How WSO2 Stream Processor can help you to
build streaming apps
● How to develop, deploy and monitor streaming apps
We covered
THANK YOU
wso2.com

More Related Content

What's hot

Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...StampedeCon
 
Billions of Rows, Millions of Insights, Right Now
Billions of Rows, Millions of Insights, Right NowBillions of Rows, Millions of Insights, Right Now
Billions of Rows, Millions of Insights, Right NowRob Winters
 
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB
 
ironSource Atom BigData Berlin
ironSource Atom BigData BerlinironSource Atom BigData Berlin
ironSource Atom BigData BerlinShimon Tolts
 
Five ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeFive ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeSingleStore
 
HP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big DataHP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big DataRob Winters
 
Next-Gen уже здесь
Next-Gen уже здесьNext-Gen уже здесь
Next-Gen уже здесьCEE-SEC(R)
 
VP of WW Partners by Alan Chhabra
VP of WW Partners by Alan ChhabraVP of WW Partners by Alan Chhabra
VP of WW Partners by Alan ChhabraBig Data Spain
 
Data Analytics at Altocloud
Data Analytics at Altocloud Data Analytics at Altocloud
Data Analytics at Altocloud Altocloud
 
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE)
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE) Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE)
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE) Guido Schmutz
 
RWE & Patient Analytics Leveraging Databricks – A Use Case
RWE & Patient Analytics Leveraging Databricks – A Use CaseRWE & Patient Analytics Leveraging Databricks – A Use Case
RWE & Patient Analytics Leveraging Databricks – A Use CaseDatabricks
 
Building the Foundation for a Latency-Free Life
Building the Foundation for a Latency-Free LifeBuilding the Foundation for a Latency-Free Life
Building the Foundation for a Latency-Free LifeSingleStore
 
Analytics in Your Enterprise
Analytics in Your EnterpriseAnalytics in Your Enterprise
Analytics in Your EnterpriseWSO2
 
Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Finding the needle in the haystack: how Nestle is leveraging big data to defe...Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Finding the needle in the haystack: how Nestle is leveraging big data to defe...Big Data Spain
 
Converging Database Transactions and Analytics
Converging Database Transactions and Analytics Converging Database Transactions and Analytics
Converging Database Transactions and Analytics SingleStore
 
Data Pipline Observability meetup
Data Pipline Observability meetup Data Pipline Observability meetup
Data Pipline Observability meetup Omid Vahdaty
 
Snowplow Analytics and Looker at Oyster.com
Snowplow Analytics and Looker at Oyster.comSnowplow Analytics and Looker at Oyster.com
Snowplow Analytics and Looker at Oyster.comyalisassoon
 
247 overviewmongodbevening-bangalore
247 overviewmongodbevening-bangalore247 overviewmongodbevening-bangalore
247 overviewmongodbevening-bangaloreMongoDB APAC
 
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...HostedbyConfluent
 
The Stream is the Database - Revolutionizing Healthcare Data Architecture
The Stream is the Database - Revolutionizing Healthcare Data ArchitectureThe Stream is the Database - Revolutionizing Healthcare Data Architecture
The Stream is the Database - Revolutionizing Healthcare Data ArchitectureDataWorks Summit/Hadoop Summit
 

What's hot (20)

Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
 
Billions of Rows, Millions of Insights, Right Now
Billions of Rows, Millions of Insights, Right NowBillions of Rows, Millions of Insights, Right Now
Billions of Rows, Millions of Insights, Right Now
 
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
 
ironSource Atom BigData Berlin
ironSource Atom BigData BerlinironSource Atom BigData Berlin
ironSource Atom BigData Berlin
 
Five ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeFive ways database modernization simplifies your data life
Five ways database modernization simplifies your data life
 
HP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big DataHP Discover: Real Time Insights from Big Data
HP Discover: Real Time Insights from Big Data
 
Next-Gen уже здесь
Next-Gen уже здесьNext-Gen уже здесь
Next-Gen уже здесь
 
VP of WW Partners by Alan Chhabra
VP of WW Partners by Alan ChhabraVP of WW Partners by Alan Chhabra
VP of WW Partners by Alan Chhabra
 
Data Analytics at Altocloud
Data Analytics at Altocloud Data Analytics at Altocloud
Data Analytics at Altocloud
 
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE)
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE) Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE)
Customer Event Hub – a modern Customer 360° view with DataStax Enterprise (DSE)
 
RWE & Patient Analytics Leveraging Databricks – A Use Case
RWE & Patient Analytics Leveraging Databricks – A Use CaseRWE & Patient Analytics Leveraging Databricks – A Use Case
RWE & Patient Analytics Leveraging Databricks – A Use Case
 
Building the Foundation for a Latency-Free Life
Building the Foundation for a Latency-Free LifeBuilding the Foundation for a Latency-Free Life
Building the Foundation for a Latency-Free Life
 
Analytics in Your Enterprise
Analytics in Your EnterpriseAnalytics in Your Enterprise
Analytics in Your Enterprise
 
Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Finding the needle in the haystack: how Nestle is leveraging big data to defe...Finding the needle in the haystack: how Nestle is leveraging big data to defe...
Finding the needle in the haystack: how Nestle is leveraging big data to defe...
 
Converging Database Transactions and Analytics
Converging Database Transactions and Analytics Converging Database Transactions and Analytics
Converging Database Transactions and Analytics
 
Data Pipline Observability meetup
Data Pipline Observability meetup Data Pipline Observability meetup
Data Pipline Observability meetup
 
Snowplow Analytics and Looker at Oyster.com
Snowplow Analytics and Looker at Oyster.comSnowplow Analytics and Looker at Oyster.com
Snowplow Analytics and Looker at Oyster.com
 
247 overviewmongodbevening-bangalore
247 overviewmongodbevening-bangalore247 overviewmongodbevening-bangalore
247 overviewmongodbevening-bangalore
 
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...
Continuous Intelligence for Customer Service Using Kafka Event Streams | Simo...
 
The Stream is the Database - Revolutionizing Healthcare Data Architecture
The Stream is the Database - Revolutionizing Healthcare Data ArchitectureThe Stream is the Database - Revolutionizing Healthcare Data Architecture
The Stream is the Database - Revolutionizing Healthcare Data Architecture
 

Similar to [WSO2Con EU 2018] Patterns for Building Streaming Apps

A head start on cloud native event driven applications - bigdatadays
A head start on cloud native event driven applications - bigdatadaysA head start on cloud native event driven applications - bigdatadays
A head start on cloud native event driven applications - bigdatadaysSriskandarajah Suhothayan
 
[WSO2Con USA 2018] Patterns for Building Streaming Apps
[WSO2Con USA 2018] Patterns for Building Streaming Apps[WSO2Con USA 2018] Patterns for Building Streaming Apps
[WSO2Con USA 2018] Patterns for Building Streaming AppsWSO2
 
Lifecycle Inference on Unreliable Event Data
Lifecycle Inference on Unreliable Event DataLifecycle Inference on Unreliable Event Data
Lifecycle Inference on Unreliable Event DataDatabricks
 
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...WSO2
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series DataMongoDB
 
WSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needsWSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needsSriskandarajah Suhothayan
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2
 
Fabric - Realtime stream processing framework
Fabric - Realtime stream processing frameworkFabric - Realtime stream processing framework
Fabric - Realtime stream processing frameworkShashank Gautam
 
An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform   An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform Sriskandarajah Suhothayan
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2
 
Streaming Analytics and Internet of Things - Geesara Prathap
Streaming Analytics and Internet of Things - Geesara PrathapStreaming Analytics and Internet of Things - Geesara Prathap
Streaming Analytics and Internet of Things - Geesara PrathapWithTheBest
 
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...WSO2
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseVictoriaMetrics
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Altinity Ltd
 
Native container monitoring
Native container monitoringNative container monitoring
Native container monitoringRohit Jnagal
 

Similar to [WSO2Con EU 2018] Patterns for Building Streaming Apps (20)

A head start on cloud native event driven applications - bigdatadays
A head start on cloud native event driven applications - bigdatadaysA head start on cloud native event driven applications - bigdatadays
A head start on cloud native event driven applications - bigdatadays
 
[WSO2Con USA 2018] Patterns for Building Streaming Apps
[WSO2Con USA 2018] Patterns for Building Streaming Apps[WSO2Con USA 2018] Patterns for Building Streaming Apps
[WSO2Con USA 2018] Patterns for Building Streaming Apps
 
Lifecycle Inference on Unreliable Event Data
Lifecycle Inference on Unreliable Event DataLifecycle Inference on Unreliable Event Data
Lifecycle Inference on Unreliable Event Data
 
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...
WSO2Con USA 2015: WSO2 Analytics Platform - The One Stop Shop for All Your Da...
 
Siddhi - cloud-native stream processor
Siddhi - cloud-native stream processorSiddhi - cloud-native stream processor
Siddhi - cloud-native stream processor
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series Data
 
WSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needsWSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needs
 
Patterns for Building Streaming Apps
Patterns for Building Streaming AppsPatterns for Building Streaming Apps
Patterns for Building Streaming Apps
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event Processor
 
Fabric - Realtime stream processing framework
Fabric - Realtime stream processing frameworkFabric - Realtime stream processing framework
Fabric - Realtime stream processing framework
 
An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform   An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
 
WSO2 Complex Event Processor
WSO2 Complex Event ProcessorWSO2 Complex Event Processor
WSO2 Complex Event Processor
 
Streaming Analytics and Internet of Things - Geesara Prathap
Streaming Analytics and Internet of Things - Geesara PrathapStreaming Analytics and Internet of Things - Geesara Prathap
Streaming Analytics and Internet of Things - Geesara Prathap
 
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
Data to Insight in a Flash: Introduction to Real-Time Analytics with WSO2 Com...
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
 
Native container monitoring
Native container monitoringNative container monitoring
Native container monitoring
 
Native Container Monitoring
Native Container MonitoringNative Container Monitoring
Native Container Monitoring
 

More from WSO2

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in MinutesWSO2
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityWSO2
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...WSO2
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”WSO2
 

More from WSO2 (20)

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

[WSO2Con EU 2018] Patterns for Building Streaming Apps

  • 1. Director, WSO2 Patterns for Building Streaming Apps Sriskandarajah Suhothayan
  • 2. Goal ● Business scenarios for building streaming apps ● Why streaming patterns ● 11 patterns of building streaming apps ● When to use streaming patterns ● How WSO2 Stream Processor can help you to build streaming apps ● How to develop, deploy and monitor streaming apps
  • 3. Why Streaming? Real-time Near Real-time Offline Constant low milliseconds & under Low milliseconds to seconds 10s seconds to minutes ● A stream is series of events ● Almost all new data is streaming ● Detects conditions quickly Image Source : https://www.flickr.com/photos/plusbeautumeurs/33307049175
  • 4. Why Streaming Apps? ● Identify perishable insights ● Continuous integration ● Orchestration of business processes ● Embedded execution of code ● Sense, think, and act in real time - Forrester
  • 5. 1. Event-driven data integration 2. Real-time ETL 3. Generating event streams from passive data 4. Streaming data routing 5. Notification management 6. Real-time decision making 7. KPI monitoring 8. Citizens integration on streaming data 9. Dashboarding and reporting Business Scenarios for Streaming
  • 7. ● To understand what stream processing can do! ● Easy to solve common problems in stream processing ● Where to use what? ● Learn best practices Why Patterns for Streaming? Image Source : https://www.flickr.com/photos/laurawoodillustration/6986871419
  • 9. 1. Data collection 2. Data cleansing 3. Data transformation 4. Data enrichment 5. Data summarization 6. Rule processing 7. Machine learning & artificial intelligence 8. Data pipelining 9. Data publishing 10. On-demand processing 11. Data presentation Stream Processing Patterns
  • 10. Data enrichment (DB, Service) Streaming App Patterns Stream Processing Data Collection Data Summarization & Rule Processing Query API Data Enrichment (DB, Service) ML Models Data Cleansing & Data Transformation Streaming Data Integration Streaming Data Analytics Data Pipelining On demand processing Machine Learning & Artificial Intelligence Data Publishing Data Presentation
  • 12. 1. Data collection Types of data collection ● Subscription to the event source ○ Kafka, Rabbitmq, JMS, Amazon SQS, MQTT, Twitter ● Receiving messages ○ HTTP, TCP, Email, WebSocket ● Extracting data ○ Change Data Capture (CDC), File Supported data formats ● JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event
  • 13. 1. Data collection Default JSON mapping Custom JSON mapping @source(type = mqtt, …, @map(type = json)) define stream ProductionStream(name string, amount double); @source(type = mqtt, …, @map(type = json, @attribute(“$.id”, “$.count”))) define stream ProductionStream(name string, amount double); {“event”:{“name”:“cake”, “amount”:20}} {“id”:“cake”, “count”:20}
  • 15. 2. Data cleansing Types of data cleansing ● Filtering ○ value ranges ○ string matching ○ regex ● Setting Defaults ○ Null checks ○ If-then-else clouces define stream ProductionStream (name string, amount double); from ProductionStream [name==“cake”] select name, ifThenElse ( amount<0, 0.0, amount) as amount insert into CleansedProductionStream;
  • 17. Data type of Stream Processor is Tuple Array[] containing values of string, int, float, long, double, bool, object JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event Tuple JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event 3. Data transformation
  • 18. Contract message from Tuple ● Output mapping ● JSON processing functions ● Map functions ● String concats 3. Data transformation Extract data to Tuple ● Input mapping ● JSON processing functions ● Map functions ● String manipulation define stream ProductionStream (json string); from ProductionInputStream select json:getString(json,"$.name") as name, json:getDouble(json,"$.amount") as amount insert into ProductionStream; Data Extraction
  • 19. Transform data by ● Inline operations ○ math & logical operations ● Inbuilt function calls ○ 60+ extensions ● Custom function calls ○ Java, JS, R 3. Data transformation myFunction(item, price) as discount define function myFunction[lang_name] return return_type { function_body }; str:upper(ItemID) as IteamCode, amount * price as cost
  • 21. Type of data enrichment ● Datastore integration ○ RDBMS (MySQL, MSSQL, Oracle, Progress) ○ NoSQL (MongoDB, HBase, Cassandra) ○ In-memory grid (Hazelcast, Redis) ○ Indexing systems (Solr, Elasticsearch) ○ In-memory (in-memory table, window) ● Service integration ○ HTTP services 4. Data enrichment
  • 22. Enriching data from table (store) 4. Data enrichment define stream ProductionStream(idNum int, amount double); @store(type=‘rdbms’, … ) @primaryKey(‘id’) @Index(name) define table ProductionInfoTable(id int, name string); from ProductionStream as s join ProductionInfoTable as t on s.idNum == t.id select t.name, s.amount insert into ProductionInfoStream; Table Join
  • 23. Enriching data from HTTP Service Call ● Non blocking service calls ● Handle error conditions 4. Data enrichment 2** 4** HTTP-Request HTTP-Response
  • 25. Type of data summarization ● Time based ○ Sliding time window ○ Tumbling time window ○ Multiple time intervals (secs to years) ● Event count based ○ Sliding length window ○ Tumbling length window ● Session based ● Frequency based 5. Data summarization Type of aggregations ● Sum ● Count ● Min ● Max ● distinctCount ● stdDev
  • 26. Multiple time intervals based summarization ● Aggregation on every second, minute, hour, … , year ● Built using 𝝀 architecture ● Real-time data in-memory ● Historic data from disk ● Works with RDBMs data stores 5. Data summarization from ProductionAggregation within "2018-12-10", "2018-12-13” per "days" select sales;
  • 28. Type of predefined rules ● Rules on single event ○ If-then-else, match, etc. ● Rules on collection of events ○ Summarization ○ Join with window or table ● Rules based on event occurrence order ○ Pattern detection ○ Trend (sequence) detection ○ Non-occurrence of event 6. Rule processing
  • 29. No occurrence of event pattern detection 6. Rule processing define stream DeliveryStream (orderId string, amount double); define stream PaymentStream (orderId string, amount double); from every (e1 = DeliveryStream) -> not PaymentStream [orderId == e1.orderId] for 15 min select e1.orderId, e1.amount insert into PaymentDelayedStream ;
  • 30. 7. Machine learning & artificial intelligence
  • 31. Type of ML/AI processing ● Anomaly detection ○ Markov model ● Serving pre-created ML models ○ PMML (build from Python, R, Spark, H2O.ai, etc) ○ TensorFlow ● Online machine learning ○ Clustering ○ Classification ○ Regression 7. Machine learning & artificial intelligence from CheckoutStream #pmml:predict(“/home/user/ml.model”,userId) insert into ShoppingPrediction; Model Serving
  • 33. 8. Data pipelining Types of data pipelines ● Sequential data processing ○ Default behaviour ○ All queries are processed by the data retrieval thread ● Asynchronous data processing ○ Parallelly processed as event batches ○ @Async(buffer.size='256', workers='2', batch.size.max='5') ● Scatter and gather ○ json:tokenize() -> process->window.batch() -> json:setElement() ○ str:tokenize() ->process-> window.batch() -> str:groupConcat()
  • 34. ● Sequential data processing ○ Default behavior ○ All queries are processed by the data retrieval thread 8. Data pipelining 1 2
  • 35. ● Asynchronous data processing ○ Parallelly processed as event batches 8. Data pipelining 2 @Async(buffer.size='256', workers='2', batch.size.max='5') define stream ProductionStream(name string, amount double); 2 11
  • 36. ● Scheduled data processing ○ Periodically trigger an execution flow ○ Based on ■ Give time period ■ Cron expression 8. Data pipelining define trigger FiveMinTriggerStream at every 5 min;
  • 37. ● Scatter and gather ○ Divide into sub-elements, process each and combine the results ○ E.g. ○ json:tokenize() -> process -> window.batch() -> json:setElement() ○ str:tokenize() -> process -> window.batch() -> str:groupConcat() 8. Data pipelining
  • 38. ● Dynamic query addition ○ Connect multiple Siddhi Apps (Collection of queries) via in-memory source and sink 8. Data pipelining Input Siddhi App Dynamic Siddhi App 1 Dynamic Siddhi App 2 Dynamic Siddhi App 3 Output Siddhi App In-memory source - sink In-memory source - sink
  • 40. 9. Data publishing Types of data publishing ● Sending data to the event sinks ○ Kafka, Rabbitmq, JMS, Amazon SQS, MQTT, HTTP, TCP, Email, WebSocket, File ○ Supported formats ■ JSON, XML, Text, Binary, Key-value, CSV, Avro, WSO2Event ● Storing data to Data Stores ○ RDBMS, MongoDB, HBase, Cassandra, Hazelcast, Redis, Solr, Elasticsearch ○ Supported operation ■ Insert, Delete, Update, (& Read)
  • 41. 9. Data publishing Default JSON mapping Custom JSON mapping @sink(type = mqtt, …, @map(type = json)) define stream ProductionStream(name string, amount double); @sink(type = mqtt, …, @map(type = json, @payload('''{“id”:“{{name}}”, “count”:{{amount}} }''' ))) define stream ProductionStream(name string, amount double); {“event”:{“name”:“cake”, “amount”:20}} {“id”:“cake”, “count”:20}
  • 43. 10. On-demand processing ● Processing stored data using REST APIs ○ Data stores (RDBMS, NoSQL, etc) ○ Multiple time inviavel aggregation ○ In-memory windows, tables
  • 44. 10. On-demand processing ● Running streaming queries via REST APIs ○ Synchronous Request-Response loopback ○ Understand current state of the environment
  • 46. 11. Data presentation Data loaded to Data Stores ● RDBMS, NoSQL & In-Memory stores Exposed via REST APIs ● On-demand data query APIs ● Running streaming queries or query data stores curl -X POST https://localhost:7443/stores/query -H "content-type: application/json" -u "admin:admin" -d '{"appName" : "RoomService", "query" : "from RoomTypeTable select *" }' -k
  • 47. 11. Data presentation Presented as Reports ● PDF, CSV ● Report generation ○ On demand & periodic reports using Jasper reports ○ Exported from dashboard
  • 48. 11. Data presentation Visualized using dashboard ● Widget generation ● Fine-grained permissions ○ Dashboard level ○ Widget level ○ Data level ● Localization ● Inter widget communication ● Shareable dashboards
  • 49. 1. Data collection 2. Data cleansing 3. Data transformation 4. Data enrichment 5. Data summarization 6. Rule processing 7. Machine learning & artificial intelligence 8. Data pipelining 9. Data publishing 10. On-demand processing 11. Data presentation Stream Processing Patterns
  • 51. Developer Studio for Streaming Apps Drag n drop query builder & source editor Edit, Debug, Simulate, & Test All in one place!
  • 52. Citizen Integration for Streaming Data Build rule templates using editor Configure rules via form based UI for non technical users Rule Building Rule Configuration
  • 54. Stream Processing in the Edge or Emadded • Streaming processing at the sources – Being embedded in Java or Python applications – Being at the edge as a sidecar – Micro Stream Processor • Local decision making to build intelligent systems • ETL at the source • Event routing • Edge analytics Dashboard Notification Invocation Data Store Event Store Event Source Stream Processor Siddhi App Stream Processor Siddhi App Siddhi App Siddhi App Feedback
  • 55. High Availability with 2 Nodes • 2 node minimum HA – Process upto 100k events/sec – While most other stream processing systems need around 5+ nodes • Zero event loss • Incremental state persistence and recovery • Multi data center support Stream Processor Stream Processor Event Sources Dashboard Notification Invocation Data Source Siddhi App Siddhi App Siddhi App Siddhi App Siddhi App Siddhi App Event Store
  • 56. • Exactly-once processing • Fault tolerance • Highly scalable • No back pressure • Distributed via annotations • Native support for Kubernetes Distributed Deployment
  • 58. Status Dashboard Monitor Resource Nodes and Siddhi Apps • Understand performance via – Throughput – Latency – CPU, Memory utilizations • Monitor various scales – Node level – Siddhi app level – Siddhi query level
  • 60. ● Lightweight, lean, and high performance ● Best suited for ○ Streaming Data Integration ○ Streaming Analytics ● Streaming SQL & graphical drag-and-drop editor ● Multiple deployment options ○ Process data at the edge (java, python) ○ Micro Stream Processing ○ High availability with 2 nodes ○ Highly scalable distributed deployments ● Support for streaming ML & Long running aggregations ● Monitoring tools and citizen integration options WSO2 Stream Processor
  • 61. 1. Event-driven data integration 2. Real-time ETL 3. Generating event streams from passive data 4. Streaming data routing 5. Notification management 6. Real-time decision making 7. KPI monitoring 8. Citizens integration on streaming data 9. Dashboarding and reporting Business Scenarios for Streaming
  • 62. ● Business scenarios for building streaming apps ● Why streaming patterns ● 11 patterns of building streaming apps ● When to use streaming patterns ● How WSO2 Stream Processor can help you to build streaming apps ● How to develop, deploy and monitor streaming apps We covered