SlideShare a Scribd company logo
1 of 60
#ActiveUIDevoxxUK @lucasjellema
Real Time UI with Apache Kafka
Streaming Analytics of Fast Data and Server Push
Lucas Jellema (CTO AMIS)
@lucasjellema
http://technology.amis.nl
www.amis.nl
<Middleware>
F5
F5
F5
CTRLF5
CTRLF5
CTRLF5
<Middleware>
F5
F5
F5
CTRLF5
CTRLF5
CTRLF5
<Middleware>
F5
F5
F5
CTRLF5
CTRLF5
CTRLF5
FAST DATA AND ACTIVE UI
• Handle [data | event] influx
• Analyze in real time
• Publish findings instantaneously
• Update UI & notify end user immediately
• Convince end user that the UI is (still) active (and no F5 is required)
• Decoupled components
• No data loss when a component is temporarily down
• Scalable with volume of events and of number of clients
API
µ
µ
µ
µ
THE CASE AT HAND
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
tags
Show live
tweet
aggregates
per tag
Allow users to
like tweets –
and show live
list of liked
tweets
Show a live
list of top 3
liked tweets
per tag
Standin for all
Hot Sources of Live Data:
IoT Physical World Reports, IT Ops, Web
Click Statistics, Business Process
execution, open data feeds (traffic,
weather, stocks, …), Points of Sales,
Social Media, microservices chatter
THE CODE
https://github.com/lucasjellema/devoxxUK18-active-ui-streaming-analysis
#ActiveUIDevoxxUK
FOLLOWING ALONG (AND HELP WITH) THE DEMO
http://bit.ly/ActiveUIDevoxxUK
EVENTS
Producers
Consumers
Robust, Scalable,
History Retention
Containerized/Cloud-
enabled
INTRODUCING APACHE KAFKA
• ..- 2010 – creation at Linkedin
• Message Bus | Event Broker | Streaming Data Platform
• High volume, low latency, highly reliable, cross technology Commit Log (ledger)
• Scalable (#messages & #consumers), distributed, durable, strict message ordering, ….
• 2011/2012 – open source under the Apache Incubator/ Top Project
• Backed by Confluent – Confluent Open Source & Confluent Enterprise
• Kafka is used by most many [large] corporations:
• And embraced by [almost] all many software vendors & cloud providers
• Client libraries available for NodeJS, Java, C/C++, Python, Ruby, PHP, Scala,
Clojure, Rust, .NET, go (aka golang) and many more
• Apache Kafka includes Connect, Mirror Maker, Streams
• KSQL is Open Source, part of the Confluent Platform
KAFKA TERMINOLOGY
• Topic
• partition
• Message
• == ByteArray
• Broker
• replicated
• Producer
• Consumer
• Working together
in Consumer Groups
Producer Consumer
Topic
Broker
Key
Value
Time
Message
Producers
Consumers
Topic
Broker
tcp
tcp
THE CASE AT HAND – STEP ONE
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
in each client
Tweets
Topic
THE CASE AT HAND – STEP ONE AND A HALF
Client
Client
Client
Client
Tweets on
#devoxxUK #java
#oraclecode
Show live
tweet feed for
each tag
in each client
Tweets
Topic
THE CASE AT HAND – STEP ONE AND TWO
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
Oracle Cloud
Event HubApplication
Container
Tweets
Topic
Event Hub
Application
Container
Application
Container
KAFKA CONSUMER IN NODE
GETS EVENTS PUSHED INTO APPLICATION
WEB APP REGISTERS LISTENER WITH KAFKA
EVENT CONSUMER
THE CASE AT HAND
SERVER SENT EVENTS FOR PUSH BACK
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
Server Sent
Event
SERVER SENT EVENT – SERVER SIDE
SERVER SENT EVENT – CLIENT SIDE
LIVE TWEET STREAM
Server Sent
Event
THE CASE AT HAND
TWEET LIKES – CLIENT TO SERVER TO ALL CLIENTS
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
SSE
Allow users to
like tweets –
and show live
list of liked
tweets
THE CASE AT HAND
WEB SOCKETS – FOR BI DIRECTIONAL PUSH
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
SSE
WebSockets
Allow users to
like tweets –
and show live
list of liked
tweets
WEBSOCKETS – SERVER SIDE
WEBSOCKETS – CLIENT SIDE - PUBLISHING
Client WebSockets
WEBSOCKETS – CLIENT SIDE - CONSUMING
Client WebSockets
TWEET LIKES BROADCASTING
WebSockets
WebSockets
THE CASE AT HAND: RUNNING COUNT
STREAMING ANALYSIS OF TWEET EVENTS
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
SSE
WebSockets
Allow users to
like tweets –
and show live
list of liked
tweets
Show live
tweet
aggregates
per tag
THE CASE AT HAND - STREAMING ANALYSIS OF TWEETS
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
WebSockets
Allow users to
like tweets –
and show live
list of liked
tweets
Show live
tweet
aggregates
per tag
tweetAnalytics
Topic
Streaming
Tweets
Aggregation
µ
SSE
KAFKA STREAMS
• Real Time Event [Stream] Processing integrated into Kafka
• Aggregations & Top-N
• Time Windows
• Continuous Queries
• Latest State (event sourcing)
• Turn Stream (of changes) into Table
(of most recent or current state)
• Part of the state can be quite old
• Exactly-once processing in Kafka Streams (as of 0.11.0)
• Note: Kafka Streams is relatively new
• Only support for Java clients; Scala client is planned too
KAFKA STREAMS
Topic
Filter
Aggregate
Join
Topic
Map (Xform)
Publish
Topic
EXAMPLE OF KAFKA STREAMS
Topic
groupBy
Aggregate
Join
Topic
Map (Xform)
Publish
TweetMessage
Tag
Text
Author
Set Conference as key
Sum/Avg/Top3 by key
(==tagFilter)
As JSON
Round aggregate to
nearest 100
e.g. Author Details
Topic: CountTweetsPerTag
and possibly per time window
ADD KAFKA STREAMS CAPABILITIES TO ANY
JAVA APPLICATION
• Add Maven Dependency
• Connect to Kafka Cluster
• Compose & Execute Kafka Streams logic:
• Write Java code
KAFKA STREAMS –
RUNNING COUNT TWEETS PER CONFERENCE
WOULDN’T IT BE NICE IF YOU COULD JUST DO
select tagfilter
, count(*) as tag_cnt
from tweets
window hopping ( size 5 minutes
, advance by 30 seconds)
group by tagfilter
KSQL – CONTINUOUS QUERIES –
PROCESSING EVENT STREAMS LIKE TABLES
• Transform, Filter, Join, Aggregate, (time) Window on Event Streams
• Results are produced as regular Kafka Events
RUNNING TWEET COUNT THROUGH KSQL
RUNNING TWEET COUNT THROUGH KSQL
• KSQL CLI
• List topics
• Print topic
• Create stream
• Create table
• List Topics
• Query from table
RUNNING TWEET COUNT THROUGH KSQL
KSQL RUNNING COUNT OF TWEETS PER TAG
RESULTS PUBLISHED ON KAFKA TOPIC
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
Allow users to
like tweets –
and show live
list of liked
tweets
Show live
tweet
aggregates
per
conference
TWEET_COUNT
Topic
Running Tweets
Aggregation
SSE
Show a live
list of top 3
liked tweets
per tag
STREAMING TWEET ANALYTICS - PUSHED TO CLIENT
Server Sent
Event
KSQL INTERFACES
Kafka Cluster
Kafka Streams API
KSQL Server
HTTP
REST API
CLI
JDBC
Driver
KTable
KStream
Topic
Topic
Topic
KTable
Topic
Topic
Java Application
KStream
THE THREE FLAVORS OF
STREAM[ING] ANALYTICS WITH KAFKA
Kafka Cluster
KTable
KStream
Topic
Topic
Topic
KTable
Topic
Topic
KStream
THE CASE AT HAND –
STREAMING ANALYSIS OF TWEET LIKES
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Show live
tweet feed for
each tag
Tweets
Topic
WebSockets
Allow users to
like tweets –
and show live
list of liked
tweets
Show live
tweet
aggregates
per
conference
TWEET_COUNT
Topic
Running Tweets
Aggregation
SSE
Show a live
list of top 3
liked tweets
per tag
THE CASE AT HAND - STREAMING ANALYSIS
OF TWEET LIKES
Client
Client
Client
Client
Tweets on #devoxxUK
#java #oraclecode
Tweets
Topic
WebSockets
TWEET_COUNT
Topic
Running Tweets
Aggregation
SSE
Show a live
list of top 3
liked tweets
per tag
Tweet-Like
Topic
Running Top3 Like
Counts Aggregation
Tweet_Like_
Counts
Topic
WEBSOCKETS – SERVER SIDE
PRODUCE TWEET LIKE EVENTS
CREATE STREAM FROM TOPIC & TABLE FROM
STREAM
create stream tweet_likes ( tweetid varchar)
with (kafka_topic='tweet-like_topic' ,
value_format='json', key='tweetid');
create table like_counts as
select count(*) likecount
, tweetid
, tagfilter
from tweet_likes
window hopping ( size 60 seconds
, advance 10 seconds)
group by tweetid, tagfilter;
CREATE STREAM FROM TABLE & ENRICHED
STREAM FROM STREAM
create stream top3_likes as
select tweetid, tagfilter, topk( likecount, 3)
from like_counts
group by tagfilter;
create stream enriched_top3_likes as
select tl.tagfilter, tl.tweetid, t.text, t.rowtime
from top3_likes tl
left join tweets t
on tl.tweetid = t.tweetid;
RUNNING TOP 3 OF
BEST LIKED TWEETS PER CONFERENCE
Server Sent
Event
Tweets on #devoxxUK
#java #oraclecode
Tweets
Topic
Oracle Cloud
Event HubApplication
Container
Tweets
Topic
TWEET_COUNT
Topic
Running Tweets
Aggregation
Tweet-Like
Topic
Running Top3 Like
Counts Aggregation
Tweet_Like_
Counts
Topic
Client
Client
Client
Client
IoT metrics from
hundreds of devices
User actions & click
events from webshop
Live Traffic EventsMicroservices chatter
Social Media events
(Facebook,
Whatsapp, …)
IT Operations –
monitoring metrics
µ
µ
µ
µ
CONCLUSION
• Fast data – Active UI & Active API leveraging live data streams
• Proactively informing consumers with [results from streaming analysis of] events
• Decoupled processing
• Unentangled, separated in space and time
• Distributed across clouds and on premises
• Kafka
• Scalable, reliable, historic Events & Data Store
• Streaming Analysis –Kafka Streams and KSQL
• Modern browser – push capability & bi-directional communication
• SSE, WebSocket, HTTP/2, WebWorker Notifications
• Active UI with happy users, fresh data without burden on back end systems
• “Step away from that F5 key”
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
+31 306016000
Edisonbaan 15,
Nieuwegein
https://github.com/lucasjellema/devoxxUK18-active-ui-streaming-analysis

More Related Content

What's hot

Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...HostedbyConfluent
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudVMware Tanzu
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Amazon Web Services
 
Scaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadScaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadC4Media
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice ArchitectureMatt McLarty
 
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...Flink Forward
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architectureIgor Khotin
 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaegerOracle Korea
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
 
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...HostedbyConfluent
 
Microservices Design Patterns
Microservices Design PatternsMicroservices Design Patterns
Microservices Design PatternsHaim Michael
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiManish Gupta
 
Armeriaworkshop2019 openchat julie
Armeriaworkshop2019 openchat julieArmeriaworkshop2019 openchat julie
Armeriaworkshop2019 openchat julieLINE+
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Araf Karsh Hamid
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication confluent
 

What's hot (20)

Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
Tradeoffs in Distributed Systems Design: Is Kafka The Best? (Ben Stopford and...
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring Cloud
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
 
Scaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road AheadScaling Slack - The Good, the Unexpected, and the Road Ahead
Scaling Slack - The Good, the Unexpected, and the Road Ahead
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...
Streaming Event Time Partitioning with Apache Flink and Apache Iceberg - Juli...
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architecture
 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaeger
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...
Developer’s guide to contributing code to Kafka with Mickael Maison and Tom B...
 
Microservices Design Patterns
Microservices Design PatternsMicroservices Design Patterns
Microservices Design Patterns
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 
Armeriaworkshop2019 openchat julie
Armeriaworkshop2019 openchat julieArmeriaworkshop2019 openchat julie
Armeriaworkshop2019 openchat julie
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication
 

Similar to Real Time Streaming Analytics and Active UI with Apache Kafka

Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Guido Schmutz
 
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020confluent
 
Streaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQLStreaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQLNick Dearden
 
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Guido Schmutz
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF WorkshopIdo Flatow
 
Exploring KSQL Patterns
Exploring KSQL PatternsExploring KSQL Patterns
Exploring KSQL Patternsconfluent
 
Event driven architecture with Kafka
Event driven architecture with KafkaEvent driven architecture with Kafka
Event driven architecture with KafkaFlorence Next
 
KSQL: Open Source Streaming for Apache Kafka
KSQL: Open Source Streaming for Apache KafkaKSQL: Open Source Streaming for Apache Kafka
KSQL: Open Source Streaming for Apache Kafkaconfluent
 
From a Kafkaesque Story to The Promised Land at LivePerson
From a Kafkaesque Story to The Promised Land at LivePersonFrom a Kafkaesque Story to The Promised Land at LivePerson
From a Kafkaesque Story to The Promised Land at LivePersonLivePerson
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database Systemconfluent
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsSlim Baltagi
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward
 
KSQL---Streaming SQL for Apache Kafka
KSQL---Streaming SQL for Apache KafkaKSQL---Streaming SQL for Apache Kafka
KSQL---Streaming SQL for Apache KafkaMatthias J. Sax
 
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Dan Halperin
 
Timeline Service v.2 (Hadoop Summit 2016)
Timeline Service v.2 (Hadoop Summit 2016)Timeline Service v.2 (Hadoop Summit 2016)
Timeline Service v.2 (Hadoop Summit 2016)Sangjin Lee
 
Timeline service V2 at the Hadoop Summit SJ 2016
Timeline service V2 at the Hadoop Summit SJ 2016Timeline service V2 at the Hadoop Summit SJ 2016
Timeline service V2 at the Hadoop Summit SJ 2016Vrushali Channapattan
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMEconfluent
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaMatt Masuda
 

Similar to Real Time Streaming Analytics and Active UI with Apache Kafka (20)

Jug - ecosystem
Jug -  ecosystemJug -  ecosystem
Jug - ecosystem
 
Chti jug - 2018-06-26
Chti jug - 2018-06-26Chti jug - 2018-06-26
Chti jug - 2018-06-26
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
 
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
 
Streaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQLStreaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQL
 
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
 
Exploring KSQL Patterns
Exploring KSQL PatternsExploring KSQL Patterns
Exploring KSQL Patterns
 
Event driven architecture with Kafka
Event driven architecture with KafkaEvent driven architecture with Kafka
Event driven architecture with Kafka
 
KSQL: Open Source Streaming for Apache Kafka
KSQL: Open Source Streaming for Apache KafkaKSQL: Open Source Streaming for Apache Kafka
KSQL: Open Source Streaming for Apache Kafka
 
From a Kafkaesque Story to The Promised Land at LivePerson
From a Kafkaesque Story to The Promised Land at LivePersonFrom a Kafkaesque Story to The Promised Land at LivePerson
From a Kafkaesque Story to The Promised Land at LivePerson
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiasts
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
 
KSQL---Streaming SQL for Apache Kafka
KSQL---Streaming SQL for Apache KafkaKSQL---Streaming SQL for Apache Kafka
KSQL---Streaming SQL for Apache Kafka
 
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
 
Timeline Service v.2 (Hadoop Summit 2016)
Timeline Service v.2 (Hadoop Summit 2016)Timeline Service v.2 (Hadoop Summit 2016)
Timeline Service v.2 (Hadoop Summit 2016)
 
Timeline service V2 at the Hadoop Summit SJ 2016
Timeline service V2 at the Hadoop Summit SJ 2016Timeline service V2 at the Hadoop Summit SJ 2016
Timeline service V2 at the Hadoop Summit SJ 2016
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache Kafka
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 

Recently uploaded (20)

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 

Real Time Streaming Analytics and Active UI with Apache Kafka

  • 1. #ActiveUIDevoxxUK @lucasjellema Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push Lucas Jellema (CTO AMIS) @lucasjellema http://technology.amis.nl www.amis.nl
  • 2.
  • 3.
  • 4.
  • 8. FAST DATA AND ACTIVE UI • Handle [data | event] influx • Analyze in real time • Publish findings instantaneously • Update UI & notify end user immediately • Convince end user that the UI is (still) active (and no F5 is required) • Decoupled components • No data loss when a component is temporarily down • Scalable with volume of events and of number of clients
  • 10. THE CASE AT HAND Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for tags Show live tweet aggregates per tag Allow users to like tweets – and show live list of liked tweets Show a live list of top 3 liked tweets per tag Standin for all Hot Sources of Live Data: IoT Physical World Reports, IT Ops, Web Click Statistics, Business Process execution, open data feeds (traffic, weather, stocks, …), Points of Sales, Social Media, microservices chatter
  • 12. FOLLOWING ALONG (AND HELP WITH) THE DEMO http://bit.ly/ActiveUIDevoxxUK
  • 14. INTRODUCING APACHE KAFKA • ..- 2010 – creation at Linkedin • Message Bus | Event Broker | Streaming Data Platform • High volume, low latency, highly reliable, cross technology Commit Log (ledger) • Scalable (#messages & #consumers), distributed, durable, strict message ordering, …. • 2011/2012 – open source under the Apache Incubator/ Top Project • Backed by Confluent – Confluent Open Source & Confluent Enterprise • Kafka is used by most many [large] corporations: • And embraced by [almost] all many software vendors & cloud providers • Client libraries available for NodeJS, Java, C/C++, Python, Ruby, PHP, Scala, Clojure, Rust, .NET, go (aka golang) and many more • Apache Kafka includes Connect, Mirror Maker, Streams • KSQL is Open Source, part of the Confluent Platform
  • 15.
  • 16. KAFKA TERMINOLOGY • Topic • partition • Message • == ByteArray • Broker • replicated • Producer • Consumer • Working together in Consumer Groups Producer Consumer Topic Broker Key Value Time Message
  • 18. THE CASE AT HAND – STEP ONE Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag in each client Tweets Topic
  • 19. THE CASE AT HAND – STEP ONE AND A HALF Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag in each client Tweets Topic
  • 20. THE CASE AT HAND – STEP ONE AND TWO Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic Oracle Cloud Event HubApplication Container
  • 24. KAFKA CONSUMER IN NODE GETS EVENTS PUSHED INTO APPLICATION
  • 25. WEB APP REGISTERS LISTENER WITH KAFKA EVENT CONSUMER
  • 26. THE CASE AT HAND SERVER SENT EVENTS FOR PUSH BACK Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic Server Sent Event
  • 27. SERVER SENT EVENT – SERVER SIDE
  • 28. SERVER SENT EVENT – CLIENT SIDE
  • 30. THE CASE AT HAND TWEET LIKES – CLIENT TO SERVER TO ALL CLIENTS Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic SSE Allow users to like tweets – and show live list of liked tweets
  • 31. THE CASE AT HAND WEB SOCKETS – FOR BI DIRECTIONAL PUSH Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic SSE WebSockets Allow users to like tweets – and show live list of liked tweets
  • 33. WEBSOCKETS – CLIENT SIDE - PUBLISHING Client WebSockets
  • 34. WEBSOCKETS – CLIENT SIDE - CONSUMING Client WebSockets
  • 36. THE CASE AT HAND: RUNNING COUNT STREAMING ANALYSIS OF TWEET EVENTS Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic SSE WebSockets Allow users to like tweets – and show live list of liked tweets Show live tweet aggregates per tag
  • 37. THE CASE AT HAND - STREAMING ANALYSIS OF TWEETS Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic WebSockets Allow users to like tweets – and show live list of liked tweets Show live tweet aggregates per tag tweetAnalytics Topic Streaming Tweets Aggregation µ SSE
  • 38. KAFKA STREAMS • Real Time Event [Stream] Processing integrated into Kafka • Aggregations & Top-N • Time Windows • Continuous Queries • Latest State (event sourcing) • Turn Stream (of changes) into Table (of most recent or current state) • Part of the state can be quite old • Exactly-once processing in Kafka Streams (as of 0.11.0) • Note: Kafka Streams is relatively new • Only support for Java clients; Scala client is planned too
  • 40. EXAMPLE OF KAFKA STREAMS Topic groupBy Aggregate Join Topic Map (Xform) Publish TweetMessage Tag Text Author Set Conference as key Sum/Avg/Top3 by key (==tagFilter) As JSON Round aggregate to nearest 100 e.g. Author Details Topic: CountTweetsPerTag and possibly per time window
  • 41. ADD KAFKA STREAMS CAPABILITIES TO ANY JAVA APPLICATION • Add Maven Dependency • Connect to Kafka Cluster • Compose & Execute Kafka Streams logic: • Write Java code
  • 42. KAFKA STREAMS – RUNNING COUNT TWEETS PER CONFERENCE
  • 43. WOULDN’T IT BE NICE IF YOU COULD JUST DO select tagfilter , count(*) as tag_cnt from tweets window hopping ( size 5 minutes , advance by 30 seconds) group by tagfilter
  • 44. KSQL – CONTINUOUS QUERIES – PROCESSING EVENT STREAMS LIKE TABLES • Transform, Filter, Join, Aggregate, (time) Window on Event Streams • Results are produced as regular Kafka Events
  • 45. RUNNING TWEET COUNT THROUGH KSQL
  • 46. RUNNING TWEET COUNT THROUGH KSQL • KSQL CLI • List topics • Print topic • Create stream • Create table • List Topics • Query from table
  • 47. RUNNING TWEET COUNT THROUGH KSQL
  • 48. KSQL RUNNING COUNT OF TWEETS PER TAG RESULTS PUBLISHED ON KAFKA TOPIC Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic Allow users to like tweets – and show live list of liked tweets Show live tweet aggregates per conference TWEET_COUNT Topic Running Tweets Aggregation SSE Show a live list of top 3 liked tweets per tag
  • 49. STREAMING TWEET ANALYTICS - PUSHED TO CLIENT Server Sent Event
  • 50. KSQL INTERFACES Kafka Cluster Kafka Streams API KSQL Server HTTP REST API CLI JDBC Driver KTable KStream Topic Topic Topic KTable Topic Topic Java Application KStream
  • 51. THE THREE FLAVORS OF STREAM[ING] ANALYTICS WITH KAFKA Kafka Cluster KTable KStream Topic Topic Topic KTable Topic Topic KStream
  • 52. THE CASE AT HAND – STREAMING ANALYSIS OF TWEET LIKES Client Client Client Client Tweets on #devoxxUK #java #oraclecode Show live tweet feed for each tag Tweets Topic WebSockets Allow users to like tweets – and show live list of liked tweets Show live tweet aggregates per conference TWEET_COUNT Topic Running Tweets Aggregation SSE Show a live list of top 3 liked tweets per tag
  • 53. THE CASE AT HAND - STREAMING ANALYSIS OF TWEET LIKES Client Client Client Client Tweets on #devoxxUK #java #oraclecode Tweets Topic WebSockets TWEET_COUNT Topic Running Tweets Aggregation SSE Show a live list of top 3 liked tweets per tag Tweet-Like Topic Running Top3 Like Counts Aggregation Tweet_Like_ Counts Topic
  • 54. WEBSOCKETS – SERVER SIDE PRODUCE TWEET LIKE EVENTS
  • 55. CREATE STREAM FROM TOPIC & TABLE FROM STREAM create stream tweet_likes ( tweetid varchar) with (kafka_topic='tweet-like_topic' , value_format='json', key='tweetid'); create table like_counts as select count(*) likecount , tweetid , tagfilter from tweet_likes window hopping ( size 60 seconds , advance 10 seconds) group by tweetid, tagfilter;
  • 56. CREATE STREAM FROM TABLE & ENRICHED STREAM FROM STREAM create stream top3_likes as select tweetid, tagfilter, topk( likecount, 3) from like_counts group by tagfilter; create stream enriched_top3_likes as select tl.tagfilter, tl.tweetid, t.text, t.rowtime from top3_likes tl left join tweets t on tl.tweetid = t.tweetid;
  • 57. RUNNING TOP 3 OF BEST LIKED TWEETS PER CONFERENCE Server Sent Event
  • 58. Tweets on #devoxxUK #java #oraclecode Tweets Topic Oracle Cloud Event HubApplication Container Tweets Topic TWEET_COUNT Topic Running Tweets Aggregation Tweet-Like Topic Running Top3 Like Counts Aggregation Tweet_Like_ Counts Topic Client Client Client Client IoT metrics from hundreds of devices User actions & click events from webshop Live Traffic EventsMicroservices chatter Social Media events (Facebook, Whatsapp, …) IT Operations – monitoring metrics µ µ µ µ
  • 59. CONCLUSION • Fast data – Active UI & Active API leveraging live data streams • Proactively informing consumers with [results from streaming analysis of] events • Decoupled processing • Unentangled, separated in space and time • Distributed across clouds and on premises • Kafka • Scalable, reliable, historic Events & Data Store • Streaming Analysis –Kafka Streams and KSQL • Modern browser – push capability & bi-directional communication • SSE, WebSocket, HTTP/2, WebWorker Notifications • Active UI with happy users, fresh data without burden on back end systems • “Step away from that F5 key”
  • 60. • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl +31 306016000 Edisonbaan 15, Nieuwegein https://github.com/lucasjellema/devoxxUK18-active-ui-streaming-analysis

Editor's Notes

  1. https://cwiki.apache.org/confluence/display/KAFKA/Clients