SlideShare a Scribd company logo
1 of 100
Download to read offline
#AperiTech Kafka
Stefano Pampaloni
Maria Pina Di Cataldo
Rome | March 22 - 23, 2019
What’s Apache Kafka?
• Pub/Sub Logic - Messaging, Done Right
• STORE - Hadoop, Made Fast
• ETL & Data Integration as a Platform
• Stream processing
Industry Trends… and why
Apache Kafka matters!
1. From ‘big data’ (batch) to ‘fast data’ (stream processing)
2. Internet of Things (IoT) and sensor data

3. Microservices and asynchronous communication
(coordination messages and data streams) between
loosely coupled and fine-grained services
Overview
"Kafka is a “publish-subscribe messaging
rethought as a distributed commit log”
"Fast
"Scalable
"Durable
"Distributed
Kafka adoption and use cases
"LinkedIn: activity streams, operational metrics, data bus 400
nodes, 18k topics, 220B msg/day (peak 3.2M msg/s), May 2014
"Netflix: real-time monitoring and event processing
"Twitter: as part of their Storm real-time data pipelines
"Spotify: log delivery (from 4h down to 10s), Hadoop
"Loggly: log collection and processing
"Mozilla: telemetry data
"Airbnb, Cisco, Gnip, InfoChimps, Ooyala, Square, Uber, …
Over 35% of Fortune 500’s are using
Apache Kafka™
6 of top 10
Travel
7 of top 10
Global banks
8 of top 10
Insurance
9 of top 10
Telecom
Kafka concepts
Kafka concepts
Kafka Streams
Kafka Connect + Streams
Kafka Connect
Stream Data Platform
Before
After
From Big Data to Fast Data
5
From big data to fast data
Stream data is
The faster the better
Stream data can be
big or fast (Lambda)
Stream data will be
big AND fast (Kappa)
Apache Kafka is the enabling technology of this transition
Big data was
The more the better
ValueofData
Volume of Data
ValueofData
Age of Data Speed Table Batch Table
DB
Streams Hadoop
Job 1 Job 2
Streams
Table 1 Table 2
DB
No-code stream analytics
No-code stream analytics
Confluent Platform
13
Confluent Platform
Open Source ExternalEnterprise
Confluent Platform
Monitoring
Analytics
Custom Apps
Transformations
Real-time
Applications
…
CRM
Data Warehouse
Database
Hadoop
Data

Integration
…
Control Center
Auto-data

Balancing
Multi-Data 

Center Replication
24/7 Support
Supported
Connectors
Clients
Schema 

Registry
REST 

Proxy
Apache Kafka
Kafka

Connect
Kafka

Streams
Kafka

Core
Database Changes Log Events loT Data Web Events …
ATM Fraud Detection
@rmoff
with Apache Kafka
and KSQL
Photoby FreddieCollins on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Spotting fraud in realtime
hotoby MirzaBabic on Unsplash
Photoby LasayeHommes on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
• Account id
• Location
• Amount
•
Inbound stream of ATM data
https://github.com/rmoff/gess
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Demo!
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Spot patterns within this stream
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Spot patterns within this stream
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Legit
Legit
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Spot patterns within this stream
Legit
Dodgy!
Legit
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Spot patterns within this stream
Legit
Dodgy!
Legit
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
• Account id
• Location
• Amount
•
Inbound stream of ATM data
https://github.com/rmoff/gess
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQL : Stream Processing with SQL
TXN_ID, ATM,
CUSTOMER_NAME,
CUSTOMER_PHONE
ATM_POSSIBLE_FRAUD;
SELECT
FROM
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Customer
details
ATM fraud txns
with customer
details
Elasticsearch
Notification
service
1. Spot fraud in stream of
transactions
2.Enrich transaction events
with customer data
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQLis the
Streaming
SQL Engine
for
Apache Kafka
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQL for Real-Time Monitoring
• Log data monitoring, tracking and alerting
• syslog data
• Sensor / IoT data
CREATE STREAM SYSLOG_INVALID_USERS AS
SELECT HOST, MESSAGE
FROM SYSLOG
WHERE MESSAGE LIKE '%Invalid user%';
http://cnfl.io/syslogs-filtering / http://cnfl.io/syslog-alerting
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQL for Streaming ETL
CREATE STREAM vip_actions AS 

SELECT userid, page, action
FROM clickstream c
LEFT JOIN users u
ON c.userid = u.user_id 

WHERE u.level = 'Platinum';
Joining, filtering, and aggregating streams of event data
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQL for Anomaly Detection
CREATE TABLE possible_fraud AS

SELECT card_number, count(*)

FROM authorization_attempts 

WINDOW TUMBLING (SIZE 5 SECONDS)

GROUP BY card_number

HAVING count(*) > 3;
Identifying patterns or anomalies in real-time data,
surfaced in milliseconds
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
CREATE STREAM pageviews
WITH (PARTITIONS=4,
VALUE_FORMAT='AVRO') AS 

SELECT * FROM pageviews_json;
KSQL for Data Transformation
Make simple derivations of existing topics from the command line
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
KSQL in Development and Production
Interactive KSQL

for development and testing
Headless KSQL

for Production
Desired KSQL queries
have been identified
REST
“Hmm, let me try

out this idea...”
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Stream Stream joins
Orders
Shipments
Which orders
haven't shipped?
order.id = shipment.order_id
Leadtime
shipment_ts - order_ts
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Stream Stream joins
ATM transactions
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Stream Stream joins
ATM transactions
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Demo!
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Self-Join (Cartesian product)
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
Self-Join (Cartesian product)
ATM_TXNS T1
INNER JOIN ATM_TXNS T2
ON T1.ACCOUNT_ID = T2.ACCOUNT_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Self-Join (Cartesian product)
FROM ATM_TXNS T1
INNER JOIN ATM_TXNS T2
WITHIN 10 MINUTES
ON T1.ACCOUNT_ID = T2.ACCOUNT_ID
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Self-Join
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland
xxx116d91d6-ef17 xxx116d91d6-ef17 11:56:58 11:56:58 Midland Midland
116d91d6-ef17 116d91d6-ef17 11:58:19 11:58:19 Halifax Halifax
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Self-Join
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland
xxx116d91d6-ef17 xxx116d91d6-ef17 11:56:58 11:56:58 Midland Midland
116d91d6-ef17 116d91d6-ef17 11:58:19 11:58:19 Halifax Halifax
Self join on same txn IDs
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Exclude joins on the same txn
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Exclude joins on the same txn
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland
Duplicate results (A:B / B:A)
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Join Windows
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
WITHIN 10 MINUTES
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Join Windows
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
WITHIN 10 MINUTES
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Join Windows
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
WITHIN 10 MINUTES
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Only join forward
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
WITHIN (0 MINUTES, 10 MINUTES)
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Only join forward
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
T1 T2
WITHIN (0 MINUTES, 10 MINUTES)
WHERE T1.TRANSACTION_ID !=
T2.TRANSACTION_ID
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Only join forward
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
WITHIN (0 MINUTES, 10 MINUTES)
Ignore events in the right-hand
stream prior to those in the left
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Only join forward
T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM
xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax
Legit Dodgy!
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Photoby EstebanLopez on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Calcuate distance between ATMs
GEO_DISTANCE(TX1.location->lat, TX1.location->lon,
TX2.location->lat, TX2.location->lon,
'KM')
TX1
TX2
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Calculate time between transactions
TX2.ROWTIME - TX1.ROWTIME AS
MILLISECONDS_DIFFERENCE
(TX2.ROWTIME - TX1.ROWTIME)
/ 1000 / 60 / 60 AS HOURS_DIFFERENCE
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Photoby EstebanLopez on Unsplash
GEO_DISTANCE(…) / HOURS_DIFFERENCE
AS KMH_REQUIRED
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
So speaking of time…
ksql> PRINT 'atm_txns_gess' ;
Format:JSON
{
"ROWTIME": 1544116309152,
"ROWKEY": "null",
"account_id": "a218",
"timestamp": "2018-12-06 17:09:58 +0000",
"atm": "HSBC",
…}
Kafka message
timestamp
2018-12-06 17:11:49
Event time
ksql> PRINT 'atm_txns_gess' ;
Format:JSON
{
"ROWTIME": 1544116309152,
"ROWKEY": "null",
"account_id": "a218",
"timestamp": "2018-12-06 17:09:58 +0000",
CREATE STREAM ATM_TXNS_GESS
(account_id VARCHAR, timestamp VARCHAR, …
WITH (KAFKA_TOPIC='atm_txns_gess',
TIMESTAMP='timestamp',
TIMESTAMP_FORMAT=
'yyyy-MM-dd HH:mm:ss X');
"timestamp": "2018-12-06 17:09:58 +0000",
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
But what about the account holder?
!
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Photoby SamuelZeller on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Customer
details
ATM fraud txns
with customer
details
Elasticsearch
Notification
service
1. Enrich transaction events
with customer data
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Streaming Integration with Kafka Connect
Kafka Brokers
Kafka Connect
Tasks Workers
Sourcessyslog
flat file
CSV
JSON
MQTT
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Streaming Integration with Kafka Connect
Kafka Brokers
Kafka Connect
Tasks Workers
Sinks
Amazon S3
MQTT
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Streaming Integration with Kafka Connect
Kafka Brokers
Kafka Connect
Tasks Workers
Sources Sinks
Amazon S3
MQTT
syslog
flat file
CSV
JSON
MQTT
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Confluent Hub
hub.confluent.io
• One-stop place to discover and
download :
• Connectors
• Transformations
• Converters
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Demo Time!
Customer
details
Kafka Connect
Debezium
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Do you think that’s a table
you are querying?
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
The Table Stream Duality
Account ID Balance
12345 €50
Account ID Amount
12345 + €50
12345 + €25
12345 -€60
Account ID Balance
12345 €75
Account ID Balance
12345 €15
Time
Stream Table
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
The truth is the log.
The database is a cache
of a subset of the log.
—Pat Helland
Immutability Changes Everything
http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf
Photo by Bobby Burch on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Ac. ID Transaction ID Time ATM
A42 xxx116d91d6-ef17 11:56:58 Midland
A42 116d91d6-ef17 11:58:19 Halifax
A42 09c2f660-ef17 19:31:11 Lloyds
Spot patterns within this stream
Legit
Dodgy!
Legit
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Ac. ID T1 Time ATM T2 Time ATM
A42 11:56:58 Midland 11:58:19 Halifax
Suspect Transactions
Dodgy!
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Name Phone Ac. ID T1 Time ATM T2 Time ATM
Robin M 1234 567 A42 11:56:58 Midland 11:58:19 Halifax
Suspect Transactions
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Customer
details
ATM fraud txns
with customer
details
Elasticsearch
Notification
service
1. Spot fraud in stream of
transactions
2.Enrich transaction events
with customer data
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Customer
details
ATM fraud txns
with customer
details
Elasticsearch
Notification
service
1. Spot fraud in stream of
transactions
2.Enrich transaction events
with customer data
ATM_POSSIBLE_FRAUD_ENRICHED
atm_txns_gess
accounts
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
What can we do with it?
Photoby JoshuaRodriguez on Unsplash
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Realtime Operations View & Analysis
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Push notification to the customer
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Confluent Community Components
Apache Kafka with a bunch of cool stuff! For free!
Database Changes Log Events loT Data Web Events …
CRM
Data Warehouse
Database
Hadoop
Data

Integration
…
Monitoring
Analytics
Custom Apps
Transformations
Real-time Applications
…
Confluent Platform
Confluent Platform
Apache Kafka®
Core | Connect API | Streams API
Data Compatibility
Schema Registry
Monitoring & Administration
Confluent Control Center | Security
Operations
Replicator | Auto Data Balancing
Development and Connectivity
Clients | Connectors | REST Proxy | CLI
SQL Stream Processing
KSQL
Datacenter Public Cloud Confluent Cloud
CONFLUENT FULLY-MANAGEDCUSTOMER SELF-MANAGED
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
Free Books!
https://www.confluent.io/apache-kafka-stream-processing-book-bundle
@rmoff
robin@confluent.io
https://www.confluent.io/ksql
http://cnfl.io/slack https://cnfl.io/demo-scene
ATM Fraud Detection with Apache Kafka and KSQL
@rmoff
• CDC Spreadsheet
• Blog: No More Silos: How to Integrate your Databases with Apache Kafka and CDC
• #partner-engineering on Slack for questions
• BD team (#partners / partners@confluent.io) can help with introductions on a given sales op
Resources
#EOF

More Related Content

Similar to Stefano Pampaloni, Maria Pina Di Cataldo - Meetup #AperiTech di Roma Apache Kafka - Codemotion Rome 2019

KSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache KafkaKSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache KafkaChris Mueller
 
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...confluent
 
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...HostedbyConfluent
 
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)Kai Wähner
 
ksqlDB: Building Consciousness on Real Time Events
ksqlDB: Building Consciousness on Real Time EventsksqlDB: Building Consciousness on Real Time Events
ksqlDB: Building Consciousness on Real Time Eventsconfluent
 
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...Michael Noll
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
 
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart LabsJun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labsconfluent
 
Concepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaConcepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaQAware GmbH
 
Real-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache KafkaReal-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache Kafkaconfluent
 
KFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIKFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIAnimesh Singh
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?confluent
 
Apache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy ProductionApache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy ProductionKai Wähner
 
Building a Streaming Platform with Kafka
Building a Streaming Platform with KafkaBuilding a Streaming Platform with Kafka
Building a Streaming Platform with Kafkaconfluent
 
Introduction to Apache Kafka and why it matters - Madrid
Introduction to Apache Kafka and why it matters - MadridIntroduction to Apache Kafka and why it matters - Madrid
Introduction to Apache Kafka and why it matters - MadridPaolo Castagna
 
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!confluent
 
Apache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya MeetupApache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya MeetupRobert Metzger
 
MongoDB World 2019: Streaming ETL on the Shoulders of Giants
MongoDB World 2019: Streaming ETL on the Shoulders of GiantsMongoDB World 2019: Streaming ETL on the Shoulders of Giants
MongoDB World 2019: Streaming ETL on the Shoulders of GiantsMongoDB
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLconfluent
 
Data analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publishData analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publishCodeValue
 

Similar to Stefano Pampaloni, Maria Pina Di Cataldo - Meetup #AperiTech di Roma Apache Kafka - Codemotion Rome 2019 (20)

KSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache KafkaKSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache Kafka
 
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...
Confluent real time_acquisition_analysis_and_evaluation_of_data_streams_20190...
 
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
 
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
 
ksqlDB: Building Consciousness on Real Time Events
ksqlDB: Building Consciousness on Real Time EventsksqlDB: Building Consciousness on Real Time Events
ksqlDB: Building Consciousness on Real Time Events
 
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart LabsJun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
Jun Rao, Confluent | Kafka Summit SF 2019 Keynote ft. Chris Kasten, Walmart Labs
 
Concepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaConcepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with Kafka
 
Real-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache KafkaReal-Time Stream Processing with KSQL and Apache Kafka
Real-Time Stream Processing with KSQL and Apache Kafka
 
KFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIKFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AI
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?
 
Apache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy ProductionApache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy Production
 
Building a Streaming Platform with Kafka
Building a Streaming Platform with KafkaBuilding a Streaming Platform with Kafka
Building a Streaming Platform with Kafka
 
Introduction to Apache Kafka and why it matters - Madrid
Introduction to Apache Kafka and why it matters - MadridIntroduction to Apache Kafka and why it matters - Madrid
Introduction to Apache Kafka and why it matters - Madrid
 
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
 
Apache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya MeetupApache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya Meetup
 
MongoDB World 2019: Streaming ETL on the Shoulders of Giants
MongoDB World 2019: Streaming ETL on the Shoulders of GiantsMongoDB World 2019: Streaming ETL on the Shoulders of Giants
MongoDB World 2019: Streaming ETL on the Shoulders of Giants
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQL
 
Data analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publishData analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publish
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Stefano Pampaloni, Maria Pina Di Cataldo - Meetup #AperiTech di Roma Apache Kafka - Codemotion Rome 2019

  • 1. #AperiTech Kafka Stefano Pampaloni Maria Pina Di Cataldo Rome | March 22 - 23, 2019
  • 2.
  • 3.
  • 4. What’s Apache Kafka? • Pub/Sub Logic - Messaging, Done Right • STORE - Hadoop, Made Fast • ETL & Data Integration as a Platform • Stream processing
  • 5. Industry Trends… and why Apache Kafka matters! 1. From ‘big data’ (batch) to ‘fast data’ (stream processing) 2. Internet of Things (IoT) and sensor data
 3. Microservices and asynchronous communication (coordination messages and data streams) between loosely coupled and fine-grained services
  • 6. Overview "Kafka is a “publish-subscribe messaging rethought as a distributed commit log” "Fast "Scalable "Durable "Distributed
  • 7. Kafka adoption and use cases "LinkedIn: activity streams, operational metrics, data bus 400 nodes, 18k topics, 220B msg/day (peak 3.2M msg/s), May 2014 "Netflix: real-time monitoring and event processing "Twitter: as part of their Storm real-time data pipelines "Spotify: log delivery (from 4h down to 10s), Hadoop "Loggly: log collection and processing "Mozilla: telemetry data "Airbnb, Cisco, Gnip, InfoChimps, Ooyala, Square, Uber, …
  • 8. Over 35% of Fortune 500’s are using Apache Kafka™ 6 of top 10 Travel 7 of top 10 Global banks 8 of top 10 Insurance 9 of top 10 Telecom
  • 11.
  • 13. Kafka Connect + Streams
  • 14.
  • 15.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22.
  • 23.
  • 25. After
  • 26. From Big Data to Fast Data 5 From big data to fast data Stream data is The faster the better Stream data can be big or fast (Lambda) Stream data will be big AND fast (Kappa) Apache Kafka is the enabling technology of this transition Big data was The more the better ValueofData Volume of Data ValueofData Age of Data Speed Table Batch Table DB Streams Hadoop Job 1 Job 2 Streams Table 1 Table 2 DB
  • 27.
  • 28.
  • 31. Confluent Platform 13 Confluent Platform Open Source ExternalEnterprise Confluent Platform Monitoring Analytics Custom Apps Transformations Real-time Applications … CRM Data Warehouse Database Hadoop Data
 Integration … Control Center Auto-data
 Balancing Multi-Data 
 Center Replication 24/7 Support Supported Connectors Clients Schema 
 Registry REST 
 Proxy Apache Kafka Kafka
 Connect Kafka
 Streams Kafka
 Core Database Changes Log Events loT Data Web Events …
  • 32.
  • 33.
  • 34.
  • 35. ATM Fraud Detection @rmoff with Apache Kafka
and KSQL Photoby FreddieCollins on Unsplash
  • 36. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Spotting fraud in realtime hotoby MirzaBabic on Unsplash
  • 38. ATM Fraud Detection with Apache Kafka and KSQL @rmoff • Account id • Location • Amount • Inbound stream of ATM data https://github.com/rmoff/gess
  • 39. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Demo!
  • 40. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Spot patterns within this stream Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds
  • 41. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Spot patterns within this stream Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Legit Legit
  • 42. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Spot patterns within this stream Legit Dodgy! Legit
  • 43. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Spot patterns within this stream Legit Dodgy! Legit
  • 44. ATM Fraud Detection with Apache Kafka and KSQL @rmoff • Account id • Location • Amount • Inbound stream of ATM data https://github.com/rmoff/gess
  • 45. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQL : Stream Processing with SQL TXN_ID, ATM, CUSTOMER_NAME, CUSTOMER_PHONE ATM_POSSIBLE_FRAUD; SELECT FROM
  • 46. ATM Fraud Detection with Apache Kafka and KSQL @rmoff
  • 47. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Customer details ATM fraud txns with customer details Elasticsearch Notification service 1. Spot fraud in stream of transactions 2.Enrich transaction events with customer data
  • 48. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQLis the Streaming SQL Engine for Apache Kafka
  • 49. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQL for Real-Time Monitoring • Log data monitoring, tracking and alerting • syslog data • Sensor / IoT data CREATE STREAM SYSLOG_INVALID_USERS AS SELECT HOST, MESSAGE FROM SYSLOG WHERE MESSAGE LIKE '%Invalid user%'; http://cnfl.io/syslogs-filtering / http://cnfl.io/syslog-alerting
  • 50. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQL for Streaming ETL CREATE STREAM vip_actions AS 
 SELECT userid, page, action FROM clickstream c LEFT JOIN users u ON c.userid = u.user_id 
 WHERE u.level = 'Platinum'; Joining, filtering, and aggregating streams of event data
  • 51. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQL for Anomaly Detection CREATE TABLE possible_fraud AS
 SELECT card_number, count(*)
 FROM authorization_attempts 
 WINDOW TUMBLING (SIZE 5 SECONDS)
 GROUP BY card_number
 HAVING count(*) > 3; Identifying patterns or anomalies in real-time data, surfaced in milliseconds
  • 52. ATM Fraud Detection with Apache Kafka and KSQL @rmoff CREATE STREAM pageviews WITH (PARTITIONS=4, VALUE_FORMAT='AVRO') AS 
 SELECT * FROM pageviews_json; KSQL for Data Transformation Make simple derivations of existing topics from the command line
  • 53. ATM Fraud Detection with Apache Kafka and KSQL @rmoff KSQL in Development and Production Interactive KSQL
 for development and testing Headless KSQL
 for Production Desired KSQL queries have been identified REST “Hmm, let me try
 out this idea...”
  • 54. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Stream Stream joins Orders Shipments Which orders haven't shipped? order.id = shipment.order_id Leadtime shipment_ts - order_ts
  • 55. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Stream Stream joins ATM transactions
  • 56. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Stream Stream joins ATM transactions
  • 57. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Demo!
  • 58. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Self-Join (Cartesian product) Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2
  • 59. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 Self-Join (Cartesian product) ATM_TXNS T1 INNER JOIN ATM_TXNS T2 ON T1.ACCOUNT_ID = T2.ACCOUNT_ID
  • 60. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Self-Join (Cartesian product) FROM ATM_TXNS T1 INNER JOIN ATM_TXNS T2 WITHIN 10 MINUTES ON T1.ACCOUNT_ID = T2.ACCOUNT_ID Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2
  • 61. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Self-Join T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax 116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland xxx116d91d6-ef17 xxx116d91d6-ef17 11:56:58 11:56:58 Midland Midland 116d91d6-ef17 116d91d6-ef17 11:58:19 11:58:19 Halifax Halifax
  • 62. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Self-Join T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax 116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland xxx116d91d6-ef17 xxx116d91d6-ef17 11:56:58 11:56:58 Midland Midland 116d91d6-ef17 116d91d6-ef17 11:58:19 11:58:19 Halifax Halifax Self join on same txn IDs
  • 63. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Exclude joins on the same txn WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax 116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland
  • 64. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Exclude joins on the same txn T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax 116d91d6-ef17 xxx116d91d6-ef17 11:58:19 11:56:58 Halifax Midland Duplicate results (A:B / B:A)
  • 65. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Join Windows Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 WITHIN 10 MINUTES WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID
  • 66. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Join Windows Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 WITHIN 10 MINUTES WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID
  • 67. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Join Windows Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 WITHIN 10 MINUTES WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID
  • 68. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Only join forward Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 WITHIN (0 MINUTES, 10 MINUTES) WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID
  • 69. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Only join forward Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds T1 T2 WITHIN (0 MINUTES, 10 MINUTES) WHERE T1.TRANSACTION_ID != T2.TRANSACTION_ID
  • 70. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Only join forward T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax WITHIN (0 MINUTES, 10 MINUTES) Ignore events in the right-hand stream prior to those in the left
  • 71. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Only join forward T1 Txn ID T2 Txn ID T1 Time T2 Time T1 ATM T2 ATM xxx116d91d6-ef17 116d91d6-ef17 11:56:58 11:58:19 Midland Halifax Legit Dodgy!
  • 72. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Photoby EstebanLopez on Unsplash
  • 73. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Calcuate distance between ATMs GEO_DISTANCE(TX1.location->lat, TX1.location->lon, TX2.location->lat, TX2.location->lon, 'KM') TX1 TX2
  • 74. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Calculate time between transactions TX2.ROWTIME - TX1.ROWTIME AS MILLISECONDS_DIFFERENCE (TX2.ROWTIME - TX1.ROWTIME) / 1000 / 60 / 60 AS HOURS_DIFFERENCE
  • 75. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Photoby EstebanLopez on Unsplash GEO_DISTANCE(…) / HOURS_DIFFERENCE AS KMH_REQUIRED
  • 76. ATM Fraud Detection with Apache Kafka and KSQL @rmoff So speaking of time… ksql> PRINT 'atm_txns_gess' ; Format:JSON { "ROWTIME": 1544116309152, "ROWKEY": "null", "account_id": "a218", "timestamp": "2018-12-06 17:09:58 +0000", "atm": "HSBC", …} Kafka message timestamp 2018-12-06 17:11:49 Event time
  • 77. ksql> PRINT 'atm_txns_gess' ; Format:JSON { "ROWTIME": 1544116309152, "ROWKEY": "null", "account_id": "a218", "timestamp": "2018-12-06 17:09:58 +0000", CREATE STREAM ATM_TXNS_GESS (account_id VARCHAR, timestamp VARCHAR, … WITH (KAFKA_TOPIC='atm_txns_gess', TIMESTAMP='timestamp', TIMESTAMP_FORMAT= 'yyyy-MM-dd HH:mm:ss X'); "timestamp": "2018-12-06 17:09:58 +0000",
  • 78. ATM Fraud Detection with Apache Kafka and KSQL @rmoff But what about the account holder? !
  • 79. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Photoby SamuelZeller on Unsplash
  • 80. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Customer details ATM fraud txns with customer details Elasticsearch Notification service 1. Enrich transaction events with customer data
  • 81. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Streaming Integration with Kafka Connect Kafka Brokers Kafka Connect Tasks Workers Sourcessyslog flat file CSV JSON MQTT
  • 82. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Streaming Integration with Kafka Connect Kafka Brokers Kafka Connect Tasks Workers Sinks Amazon S3 MQTT
  • 83. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Streaming Integration with Kafka Connect Kafka Brokers Kafka Connect Tasks Workers Sources Sinks Amazon S3 MQTT syslog flat file CSV JSON MQTT
  • 84. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Confluent Hub hub.confluent.io • One-stop place to discover and download : • Connectors • Transformations • Converters
  • 85. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Demo Time! Customer details Kafka Connect Debezium
  • 86. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Do you think that’s a table you are querying?
  • 87. ATM Fraud Detection with Apache Kafka and KSQL @rmoff The Table Stream Duality Account ID Balance 12345 €50 Account ID Amount 12345 + €50 12345 + €25 12345 -€60 Account ID Balance 12345 €75 Account ID Balance 12345 €15 Time Stream Table
  • 88. ATM Fraud Detection with Apache Kafka and KSQL @rmoff The truth is the log. The database is a cache of a subset of the log. —Pat Helland Immutability Changes Everything http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf Photo by Bobby Burch on Unsplash
  • 89. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Ac. ID Transaction ID Time ATM A42 xxx116d91d6-ef17 11:56:58 Midland A42 116d91d6-ef17 11:58:19 Halifax A42 09c2f660-ef17 19:31:11 Lloyds Spot patterns within this stream Legit Dodgy! Legit
  • 90. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Ac. ID T1 Time ATM T2 Time ATM A42 11:56:58 Midland 11:58:19 Halifax Suspect Transactions Dodgy!
  • 91. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Name Phone Ac. ID T1 Time ATM T2 Time ATM Robin M 1234 567 A42 11:56:58 Midland 11:58:19 Halifax Suspect Transactions
  • 92. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Customer details ATM fraud txns with customer details Elasticsearch Notification service 1. Spot fraud in stream of transactions 2.Enrich transaction events with customer data
  • 93. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Customer details ATM fraud txns with customer details Elasticsearch Notification service 1. Spot fraud in stream of transactions 2.Enrich transaction events with customer data ATM_POSSIBLE_FRAUD_ENRICHED atm_txns_gess accounts
  • 94. ATM Fraud Detection with Apache Kafka and KSQL @rmoff What can we do with it? Photoby JoshuaRodriguez on Unsplash
  • 95. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Realtime Operations View & Analysis
  • 96. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Push notification to the customer
  • 97. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Confluent Community Components Apache Kafka with a bunch of cool stuff! For free! Database Changes Log Events loT Data Web Events … CRM Data Warehouse Database Hadoop Data
 Integration … Monitoring Analytics Custom Apps Transformations Real-time Applications … Confluent Platform Confluent Platform Apache Kafka® Core | Connect API | Streams API Data Compatibility Schema Registry Monitoring & Administration Confluent Control Center | Security Operations Replicator | Auto Data Balancing Development and Connectivity Clients | Connectors | REST Proxy | CLI SQL Stream Processing KSQL Datacenter Public Cloud Confluent Cloud CONFLUENT FULLY-MANAGEDCUSTOMER SELF-MANAGED
  • 98. ATM Fraud Detection with Apache Kafka and KSQL @rmoff Free Books! https://www.confluent.io/apache-kafka-stream-processing-book-bundle
  • 100. ATM Fraud Detection with Apache Kafka and KSQL @rmoff • CDC Spreadsheet • Blog: No More Silos: How to Integrate your Databases with Apache Kafka and CDC • #partner-engineering on Slack for questions • BD team (#partners / partners@confluent.io) can help with introductions on a given sales op Resources #EOF