SlideShare a Scribd company logo
1 of 84
Extending the Stream-Table Duality
Into a Trinity With Graphs
M. David Allen & William Lyon
Neo4j
bit.ly/streamingtrinity
OR:
“Streams and Tables and Graphs, oh my!”
Kafka Summit 2019
M. David Allen & William Lyon
Neo4j
William Lyon
@lyonwj
3
Neo4j Labs Engineer
M. David Allen
@mdavidallen
Solution Architect
Stream-Table Duality
4
https://docs.confluent.io/current/streams/concepts.html#duality-of-streams-and-tables
A stream can be considered a changelog of a table
A table is a snapshot of latest value of each key in a stream.
Many applications need both streams and tables, leverage both depending on
the use case.
Streams
● Record history
● Sequence of immutable
data records
Tables
● Represent state
● Collection of
key-value pairs
The Trinity:
Streams,
Tables,
Graphs
5
Streams
● Record history
● Sequence of immutable
data records
Tables
● Represent state
● Collection of
key-value pairs
Graphs
● Integrate datasets and query
across them in near real time
● Graph analytics provide
actionable insight
https://docs.confluent.io/current/streams/concepts.html#duality-of-streams-and-tables
The world is a graph – everything is connected
• people, places, events
• companies, markets
• countries, history, politics
• sciences, art, teaching
• technology, networks, machines,
applications, users
• software, code, dependencies,
architecture, deployments
• criminals, fraudsters and their behavior
Use Cases
Internal Applications
Master Data Management
Network and
IT Operations
Fraud Detection
Customer-Facing Applications
Real-Time Recommendations
Graph-Based Search
Identity and
Access Management
Pig E. Bank
Paul Pennequin - Software Engineer
No problem!
Give me 3
weeks!
Week 1: Getting Started With
Graphs
12
What are Graphs All About?
Graph Database
● Database management system (DBMS)
● Property Graph data model
● Cypher query language
● Graph analytics
● Data visualization
● Developer tool for building applications
What is Neo4j?
neo4j.com/
Car
DRIVES
name: “Dan”
born: May 29, 1970
twitter: “@dan”
name: “Ann”
born: Dec 5, 1975
since:
Jan 10, 2011
brand: “Volvo”
model: “V70”
Property Graph Model Components
Nodes
• Represent the objects in the graph
• Can be labeled
Relationships
• Relate nodes by type and direction
Properties
• Name-value pairs that can go on
nodes and relationships.
LOVES
LOVES
LIVES WITH
OW
NS
Person Person
Labeled Property Graph
Cypher Query Language
CREATE (:Company { name:“Neo4j”} ) -[:LOCATED_IN]-> (:City { name:“San Mateo”} )
LOCATED_INNeo4j
LABEL PROPERTY
NODE NODE
LABEL PROPERTY
An
San Mateo
Proof of concept goal:
● Combine customer, account, and
session data from different
systems into Neo4j
● Find suspicious parties and
accounts
● Identify potential fraud rings
(connected parties) and flag for
analyst follow up
18
Fraud Detection With Neo4j At Pig E. Bank
Customers Accounts Sessions
○ Suspicious:
■ Shared SSNs, phones,
cookies
■ Connected to known
fraudsters
Evidence of Fraud
Cookie SSN Phone
Person Person
Person
Fraud Detection
Data Model
21
LOAD CSV - parties.csv
Querying With Cypher
23
Find Parties With Overlapping SSN, Phone, Or Cookies
24
25
Find Fraud Rings
26
27
Fraud Flagger
1. Links innocents to
suspects
2. Suspects: a known
fraudster, or anyone
connected to one
3. Louvain Community
Detection to group all
associated parties into
candidate fraud rings
Graph Algorithm Categories in Neo4j
neo4j.com/
graph-algorithms-
book/
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Link
Prediction
Finds optimal paths
or evaluates route
availability and quality
Determines the
importance of distinct
nodes in the network
Detects group
clustering or partition
options
Evaluates how
alike nodes are
Estimates the likelihood
of nodes forming a
future relationship
Similarity
Graph Algorithms in Neo4j
• Parallel Breadth First Search &
DFS
• Shortest Path
• Single-Source Shortest Path
• All Pairs Shortest Path
• Minimum Spanning Tree
• A* Shortest Path
• Yen’s K Shortest Path
• K-Spanning Tree (MST)
• Random Walk
• Degree Centrality
• Closeness Centrality
• CC Variations: Harmonic, Dangalchev,
Wasserman & Faust
• Betweenness Centrality
• Approximate Betweenness Centrality
• PageRank
• Personalized PageRank
• ArticleRank
• Eigenvector Centrality
• Triangle Count
• Clustering Coefficients
• Connected Components (Union Find)
• Strongly Connected Components
• Label Propagation
• Louvain Modularity – 1 Step &
Multi-Step
• Balanced Triad (identification)
• Euclidean Distance
• Cosine Similarity
• Jaccard Similarity
• Overlap Similarity
• Pearson Similarity
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Similarity
neo4j.com/docs/
graph-algorithms/current/
Updated June 2019
Link
Prediction
• Adamic Adar
• Common Neighbors
• Preferential Attachment
• Resource Allocations
• Same Community
• Total Neighbors
+35
Identify communities
around fraudulent actors
Community Detection With Louvain Algorithms
OK, but what
about updates?
We need this on a
stream.
Week 2: Bringing in Kafka
34
Pig E. Bank Architecture - POC
Customers
Accounts Sessions
Account
Management
System
{event} Web API{event}
35
Pig E. Bank Architecture - TARGET
Customers Accounts
Sessions
Account
Management
System
{event} Web API{event}
Fraud Detection
36
neo4j-streams
• Consume messages
from a topic, write to
the graph
• Produce messages from
the graph (Debezium
format)
neo4j.com/labs/kafka/
● Easiest way to deploy a connector
to get data into Neo4j
● Best flexibility to change which
data you pull from Kafka and
what goes into Neo4j without
touching the database
37
Kafka Connect Sink
https://www.confluent.io/hub/neo4j/kafka-connect-neo4j
38
Infrastructure at Pig E. Bank
stream2
stream1
stream3
Party
Interaction
Stream
Online
Banking
Account
Registration
Customer
Service
Existing
Systems
NEO4J_kafka_group_id: myconsumer
NEO4J_streams_sink_topic_cypher_cookies: "
MERGE (c:Cookie { cookie_id: event.cookie_id })
ON CREATE SET c += event
MERGE (p:Party { id: toInt(event.party_id) })
MERGE (p)-[:COOKIE]->(c)"
NEO4J_streams_sink_enabled: "true"
NEO4J_streams_procedures_enabled: "true"
39
Configuring Neo4j Streams (docker)
NEO4J_streams_source_enabled: "true"
NEO4J_streams_source_topic_nodes_fraudflags: Party{*}
NEO4J_streams_source_topic_relationships_associations: ASSOCIATED{*}
NEO4J_streams_source_schema_polling_interval: 10000
Take messages from the “cookies” topic,
and write new cookie nodes to the graph,
matched to the right party!
Whenever a change is
made to a Party
or an ASSOCIATED link
created, report
that to a topic.
40
Graphs Back to Tables, with a little help from KSQL
● Neo4j-streams publishes CDC back to Kafka
● Define a stream using KSQL that structures that
JSON
● Simple KSQL query over that stream yields all of
the cases WHERE fraud_followup OR
fraud_confirmed;
41
Confluent Cloud -
KSQL Access to
Graph
Analytics
Week 3:
How To Expose Graph Data To
Fraud Analyst Team?
42
43
Business
View
Account Activity
- New Accounts
- Online Accesses
- Profile Updates
Known Fraudulent
Accounts
Auditor
Investigation
Account Action Improved Insight
Close Account
Legal Action
confirmed and
suspected
fraud cases
Week 3:
Neo4j GraphQL and GRANDstack
Neo4j Client Drivers
● Cluster routing (bolt+routing://)
● Bolt binary protocol
● Cypher type system
● Authentication / TLS
Neo4j Client Drivers
neo4j.com/developer/language-guides/
JavaScript Example
GraphQL
What is GraphQL?
graphql.org
An API query language and runtime for building APIs
@lyonwj
● Fullstack framework for building applications
Fullstack GraphQL with GRANDstack
grandstack.io
@lyonwj
“Your Application Data Is A Graph”
-- GraphQL
@lyonwj
Expose A GraphQL API From Neo4j
52
GRANDstack.io
53
Investigative GRANDstack App React UI
fetches data
from Neo4j
using
GraphQL
View data on parties or
“fraud flagged” cases
Select an active case to
begin adjudication
analysis Graph visualization
enables fraud analyst to
explore the connected
accounts to verify
fraudulent behavior.
Analyst adjudicates case, updating data
in Neo4j which sends an event to Kafka
fraud stream via neo4j-streams
54
Fraud
Flagger
Party Interaction Stream
Fraud Suspect Stream
Fraud Confirmation Stream
Identify
Suspects
Investigate suspects
Adjudicate cases
Investigative App
Bank
Internal
Analyst
neo4j-streams
Technical
View
Demo
55
56
Show me
something real!
No PII Was Harmed
in the Making of this
Presentation
You may see phone numbers and Social
Security Numbers on screen.
Most of the schema and use case is real,
the data is fake.
58
Investigative GRANDstack App
@lyonwj
@lyonwj
10x
Engineer
Resources
62
neo4j.com/online-summit/
30+ Sessions. Online. October 10.
64
Demo Code
github.com/moxious/kafka-summit-fraud-demo
65
More About Fraud Detection With Graphs
● https://maxdemarzi.com/2019/08/19/finding-fraud/
● https://maxdemarzi.com/2019/08/20/finding-fraud-part-two/
66
Graph Based Fraud Detection Resources
● Neo4j-streams: integrate Kafka & Neo4j, deploy as a Neo4j plugin or as a
connect worker:
○ Code: https://github.com/neo4j-contrib/neo4j-streams
○ Kafka Connect Neo4j Sink: https://www.confluent.io/hub/neo4j/kafka-connect-neo4j
● GRANDStack: GraphQL, React, Apollo, and Neo4j for building rich web
applications on graphs https://grandstack.io/
● How to Leverage Neo4j-Streams to build a just-in-time data warehouse
https://www.freecodecamp.org/news/how-to-leverage-neo4j-streams-and-build-a-just-in-time-data-warehouse-64adf290f093/
● Neo4j Graph Algorithms https://neo4j.com/docs/graph-algorithms/current/
67
Resources
68
neo4jsandbox.com
neo4j.com/developer/get-started/
Neo4j Developer Guides
r.neo4j.com/youtube
Neo4j Youtube Channel
medium.com/neo4j
Neo4j Developer Blog
community.neo4j.com
Neo4j Community Site
neo4j.com/tag/twin4j
TWIN4j
neo4jsandbox.com
https://neo4jsandbox.com
neo4j.com/graphacademy/neo4j-certification/
Q&A
76
Backup
77
78
79
80
81
How do Graphs and Streams
Go Together?
82
The Trinity
● Kafka streams: a log of key/value pairs
● Tables: the latest value for each key
● Graphs: interchangeable, with rich
relationships
● Why? Because:
○ Relationships matter, sometimes the
pattern is more important than the
individual data point
○ Table joins are hard to do and not very
performant when you have many to do
○ Many problem domains are more
naturally expressed as a graph
83
Use Case
● Top 10 largest bank is looking
for fraudulent behavior in
access to online accounts.
● Customers (or “Parties”)
access accounts online;
naturally we know their basic
details (phone, SSN, address)
and also their linked Credit
Cards, Accounts. Cookies & IP
addresses track who/how
access is made
84
Investigative App
● Flagger sets suspicious graph algo people to fraud_followup=true
● Find records with fraud_followup=true, fraud_confirmed=false
○ This means we think something’s going on here but needs followup
○ Set a case ID. If you have a case ID but fraud_confirmed=false, then you are either investigating (and
doesn’t need to be in the dashboard) or you’ve adjudicated the case and it doesn’t show.
● Possibilities:
○ Flag is bogus. In this case, leave fraud_confirmed=false, and set case ID
○ Flag is good. Then set fraud_confirmed=true and set case ID
○ Anything else is “not yet worked”
○ fraud_followup = false is an innocent bystander not worth checking.
● App gives:
○ Table of “suspects”
○ App shows parties connected - what detail do we share? How many pieces? Etc.
■ Subplot: cross-reference transactions -- this person has spent more than usual in different places
lately
○ bloom deep link to suspects and where they exist in the graph
○ Some fake notion of “do the investigation”
● Toggle fraud_confirmed=true (because we’ve decided this guy is bogus)

More Related Content

What's hot

New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6Kai Wähner
 
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
 
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...confluent
 
Telling the LivePerson Technology Story at Couchbase [SF] 2013
Telling the LivePerson Technology Story at Couchbase [SF] 2013Telling the LivePerson Technology Story at Couchbase [SF] 2013
Telling the LivePerson Technology Story at Couchbase [SF] 2013LivePerson
 
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
 
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...HostedbyConfluent
 
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...confluent
 
Kafka, Killer of Point-to-Point Integrations, Lucian Lita
Kafka, Killer of Point-to-Point Integrations, Lucian LitaKafka, Killer of Point-to-Point Integrations, Lucian Lita
Kafka, Killer of Point-to-Point Integrations, Lucian Litaconfluent
 
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...HostedbyConfluent
 
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud ServicesBuild a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Servicesconfluent
 
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin KumarSiphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumarconfluent
 
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...Lightbend
 
IoT and Event Streaming at Scale with Apache Kafka
IoT and Event Streaming at Scale with Apache KafkaIoT and Event Streaming at Scale with Apache Kafka
IoT and Event Streaming at Scale with Apache Kafkaconfluent
 
Streaming Transformations - Putting the T in Streaming ETL
Streaming Transformations - Putting the T in Streaming ETLStreaming Transformations - Putting the T in Streaming ETL
Streaming Transformations - Putting the T in Streaming ETLconfluent
 
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...HostedbyConfluent
 
Maximilian Michels - Flink and Beam
Maximilian Michels - Flink and BeamMaximilian Michels - Flink and Beam
Maximilian Michels - Flink and BeamFlink Forward
 
Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)KafkaZone
 
Matching the Scale at Tinder with Kafka
Matching the Scale at Tinder with Kafka Matching the Scale at Tinder with Kafka
Matching the Scale at Tinder with Kafka confluent
 
Building a Web Application with Kafka as your Database
Building a Web Application with Kafka as your DatabaseBuilding a Web Application with Kafka as your Database
Building a Web Application with Kafka as your Databaseconfluent
 

What's hot (20)

New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6New Features in Confluent Platform 6.0 / Apache Kafka 2.6
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
 
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
 
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...
Kafka: Journey from Just Another Software to Being a Critical Part of PayPal ...
 
Telling the LivePerson Technology Story at Couchbase [SF] 2013
Telling the LivePerson Technology Story at Couchbase [SF] 2013Telling the LivePerson Technology Story at Couchbase [SF] 2013
Telling the LivePerson Technology Story at Couchbase [SF] 2013
 
Flink SQL in Action
Flink SQL in ActionFlink SQL in Action
Flink SQL in Action
 
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
 
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
Self-service Events & Decentralised Governance with AsyncAPI: A Real World Ex...
 
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...
Data Transformations on Ops Metrics using Kafka Streams (Srividhya Ramachandr...
 
Kafka, Killer of Point-to-Point Integrations, Lucian Lita
Kafka, Killer of Point-to-Point Integrations, Lucian LitaKafka, Killer of Point-to-Point Integrations, Lucian Lita
Kafka, Killer of Point-to-Point Integrations, Lucian Lita
 
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...
Building Event Streaming Microservices with Spring Boot and Apache Kafka | Ja...
 
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud ServicesBuild a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
 
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin KumarSiphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
 
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...
How Credit Karma Makes Real-Time Decisions For 60 Million Users With Akka Str...
 
IoT and Event Streaming at Scale with Apache Kafka
IoT and Event Streaming at Scale with Apache KafkaIoT and Event Streaming at Scale with Apache Kafka
IoT and Event Streaming at Scale with Apache Kafka
 
Streaming Transformations - Putting the T in Streaming ETL
Streaming Transformations - Putting the T in Streaming ETLStreaming Transformations - Putting the T in Streaming ETL
Streaming Transformations - Putting the T in Streaming ETL
 
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
 
Maximilian Michels - Flink and Beam
Maximilian Michels - Flink and BeamMaximilian Michels - Flink and Beam
Maximilian Michels - Flink and Beam
 
Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)
 
Matching the Scale at Tinder with Kafka
Matching the Scale at Tinder with Kafka Matching the Scale at Tinder with Kafka
Matching the Scale at Tinder with Kafka
 
Building a Web Application with Kafka as your Database
Building a Web Application with Kafka as your DatabaseBuilding a Web Application with Kafka as your Database
Building a Web Application with Kafka as your Database
 

Similar to Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen & Will Lyon, Neo4j,Inc.) Kafka Summit SF 2019

Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...jexp
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j
 
Neo4j GraphTalks Oslo - Introduction to Graphs
Neo4j GraphTalks Oslo - Introduction to GraphsNeo4j GraphTalks Oslo - Introduction to Graphs
Neo4j GraphTalks Oslo - Introduction to GraphsNeo4j
 
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jAI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jIvan Zoratti
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData SolutionsTravis Oliphant
 
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph Platform
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph PlatformNeo4j GraphTalk Florence - Introduction to the Neo4j Graph Platform
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph PlatformNeo4j
 
Time's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowTime's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowEric Kavanagh
 
Neo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j
 
data-mesh-101.pptx
data-mesh-101.pptxdata-mesh-101.pptx
data-mesh-101.pptxTarekHamdi8
 
WSO2 Machine Learner - Product Overview
WSO2 Machine Learner - Product OverviewWSO2 Machine Learner - Product Overview
WSO2 Machine Learner - Product OverviewWSO2
 
Introduction to Neo4j
Introduction to Neo4jIntroduction to Neo4j
Introduction to Neo4jNeo4j
 
Building a modern in-house analytics pipeline
Building a modern in-house analytics pipelineBuilding a modern in-house analytics pipeline
Building a modern in-house analytics pipelineSergey Burkov
 
Stream Processing with Flink and Stream Sharing
Stream Processing with Flink and Stream SharingStream Processing with Flink and Stream Sharing
Stream Processing with Flink and Stream Sharingconfluent
 
A Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationA Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationBen Stopford
 
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...apidays
 
Ketnote: GraphTour Boston
Ketnote: GraphTour BostonKetnote: GraphTour Boston
Ketnote: GraphTour BostonNeo4j
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureAndreas Schreiber
 

Similar to Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen & Will Lyon, Neo4j,Inc.) Kafka Summit SF 2019 (20)

Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4jNeo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
Neo4j GraphTour New York_Leveraging Graphs for AI_Neo4j
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
 
Neo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperativeNeo4j GraphDay Seattle- Sept19- Connected data imperative
Neo4j GraphDay Seattle- Sept19- Connected data imperative
 
Neo4j GraphTalks Oslo - Introduction to Graphs
Neo4j GraphTalks Oslo - Introduction to GraphsNeo4j GraphTalks Oslo - Introduction to Graphs
Neo4j GraphTalks Oslo - Introduction to Graphs
 
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4jAI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
AI, ML and Graph Algorithms: Real Life Use Cases with Neo4j
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData Solutions
 
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph Platform
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph PlatformNeo4j GraphTalk Florence - Introduction to the Neo4j Graph Platform
Neo4j GraphTalk Florence - Introduction to the Neo4j Graph Platform
 
Time's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowTime's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data Now
 
Neo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform Overview
 
Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You Neo4j: What's Under the Hood & How Knowing This Can Help You
Neo4j: What's Under the Hood & How Knowing This Can Help You
 
data-mesh-101.pptx
data-mesh-101.pptxdata-mesh-101.pptx
data-mesh-101.pptx
 
WSO2 Machine Learner - Product Overview
WSO2 Machine Learner - Product OverviewWSO2 Machine Learner - Product Overview
WSO2 Machine Learner - Product Overview
 
Introduction to Neo4j
Introduction to Neo4jIntroduction to Neo4j
Introduction to Neo4j
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
Building a modern in-house analytics pipeline
Building a modern in-house analytics pipelineBuilding a modern in-house analytics pipeline
Building a modern in-house analytics pipeline
 
Stream Processing with Flink and Stream Sharing
Stream Processing with Flink and Stream SharingStream Processing with Flink and Stream Sharing
Stream Processing with Flink and Stream Sharing
 
A Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationA Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices Generation
 
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
 
Ketnote: GraphTour Boston
Ketnote: GraphTour BostonKetnote: GraphTour Boston
Ketnote: GraphTour Boston
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructure
 

More from confluent

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
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

More from confluent (20)

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...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Extending the Stream/Table Duality into a Trinity, with Graphs (David Allen & Will Lyon, Neo4j,Inc.) Kafka Summit SF 2019

  • 1. Extending the Stream-Table Duality Into a Trinity With Graphs M. David Allen & William Lyon Neo4j bit.ly/streamingtrinity
  • 2. OR: “Streams and Tables and Graphs, oh my!” Kafka Summit 2019 M. David Allen & William Lyon Neo4j
  • 3. William Lyon @lyonwj 3 Neo4j Labs Engineer M. David Allen @mdavidallen Solution Architect
  • 4. Stream-Table Duality 4 https://docs.confluent.io/current/streams/concepts.html#duality-of-streams-and-tables A stream can be considered a changelog of a table A table is a snapshot of latest value of each key in a stream. Many applications need both streams and tables, leverage both depending on the use case. Streams ● Record history ● Sequence of immutable data records Tables ● Represent state ● Collection of key-value pairs
  • 5. The Trinity: Streams, Tables, Graphs 5 Streams ● Record history ● Sequence of immutable data records Tables ● Represent state ● Collection of key-value pairs Graphs ● Integrate datasets and query across them in near real time ● Graph analytics provide actionable insight https://docs.confluent.io/current/streams/concepts.html#duality-of-streams-and-tables
  • 6. The world is a graph – everything is connected • people, places, events • companies, markets • countries, history, politics • sciences, art, teaching • technology, networks, machines, applications, users • software, code, dependencies, architecture, deployments • criminals, fraudsters and their behavior
  • 7. Use Cases Internal Applications Master Data Management Network and IT Operations Fraud Detection Customer-Facing Applications Real-Time Recommendations Graph-Based Search Identity and Access Management
  • 8. Pig E. Bank Paul Pennequin - Software Engineer
  • 10.
  • 11. Week 1: Getting Started With Graphs
  • 12. 12 What are Graphs All About?
  • 13. Graph Database ● Database management system (DBMS) ● Property Graph data model ● Cypher query language ● Graph analytics ● Data visualization ● Developer tool for building applications What is Neo4j? neo4j.com/
  • 14. Car DRIVES name: “Dan” born: May 29, 1970 twitter: “@dan” name: “Ann” born: Dec 5, 1975 since: Jan 10, 2011 brand: “Volvo” model: “V70” Property Graph Model Components Nodes • Represent the objects in the graph • Can be labeled Relationships • Relate nodes by type and direction Properties • Name-value pairs that can go on nodes and relationships. LOVES LOVES LIVES WITH OW NS Person Person
  • 16. Cypher Query Language CREATE (:Company { name:“Neo4j”} ) -[:LOCATED_IN]-> (:City { name:“San Mateo”} ) LOCATED_INNeo4j LABEL PROPERTY NODE NODE LABEL PROPERTY An San Mateo
  • 17.
  • 18. Proof of concept goal: ● Combine customer, account, and session data from different systems into Neo4j ● Find suspicious parties and accounts ● Identify potential fraud rings (connected parties) and flag for analyst follow up 18 Fraud Detection With Neo4j At Pig E. Bank Customers Accounts Sessions
  • 19. ○ Suspicious: ■ Shared SSNs, phones, cookies ■ Connected to known fraudsters Evidence of Fraud Cookie SSN Phone Person Person Person
  • 21. 21 LOAD CSV - parties.csv
  • 23. 23 Find Parties With Overlapping SSN, Phone, Or Cookies
  • 24. 24
  • 26. 26
  • 27. 27 Fraud Flagger 1. Links innocents to suspects 2. Suspects: a known fraudster, or anyone connected to one 3. Louvain Community Detection to group all associated parties into candidate fraud rings
  • 28. Graph Algorithm Categories in Neo4j neo4j.com/ graph-algorithms- book/ Pathfinding & Search Centrality / Importance Community Detection Link Prediction Finds optimal paths or evaluates route availability and quality Determines the importance of distinct nodes in the network Detects group clustering or partition options Evaluates how alike nodes are Estimates the likelihood of nodes forming a future relationship Similarity
  • 29. Graph Algorithms in Neo4j • Parallel Breadth First Search & DFS • Shortest Path • Single-Source Shortest Path • All Pairs Shortest Path • Minimum Spanning Tree • A* Shortest Path • Yen’s K Shortest Path • K-Spanning Tree (MST) • Random Walk • Degree Centrality • Closeness Centrality • CC Variations: Harmonic, Dangalchev, Wasserman & Faust • Betweenness Centrality • Approximate Betweenness Centrality • PageRank • Personalized PageRank • ArticleRank • Eigenvector Centrality • Triangle Count • Clustering Coefficients • Connected Components (Union Find) • Strongly Connected Components • Label Propagation • Louvain Modularity – 1 Step & Multi-Step • Balanced Triad (identification) • Euclidean Distance • Cosine Similarity • Jaccard Similarity • Overlap Similarity • Pearson Similarity Pathfinding & Search Centrality / Importance Community Detection Similarity neo4j.com/docs/ graph-algorithms/current/ Updated June 2019 Link Prediction • Adamic Adar • Common Neighbors • Preferential Attachment • Resource Allocations • Same Community • Total Neighbors +35
  • 30. Identify communities around fraudulent actors Community Detection With Louvain Algorithms
  • 31.
  • 32. OK, but what about updates? We need this on a stream.
  • 33. Week 2: Bringing in Kafka
  • 34. 34 Pig E. Bank Architecture - POC Customers Accounts Sessions Account Management System {event} Web API{event}
  • 35. 35 Pig E. Bank Architecture - TARGET Customers Accounts Sessions Account Management System {event} Web API{event} Fraud Detection
  • 36. 36 neo4j-streams • Consume messages from a topic, write to the graph • Produce messages from the graph (Debezium format) neo4j.com/labs/kafka/
  • 37. ● Easiest way to deploy a connector to get data into Neo4j ● Best flexibility to change which data you pull from Kafka and what goes into Neo4j without touching the database 37 Kafka Connect Sink https://www.confluent.io/hub/neo4j/kafka-connect-neo4j
  • 38. 38 Infrastructure at Pig E. Bank stream2 stream1 stream3 Party Interaction Stream Online Banking Account Registration Customer Service Existing Systems
  • 39. NEO4J_kafka_group_id: myconsumer NEO4J_streams_sink_topic_cypher_cookies: " MERGE (c:Cookie { cookie_id: event.cookie_id }) ON CREATE SET c += event MERGE (p:Party { id: toInt(event.party_id) }) MERGE (p)-[:COOKIE]->(c)" NEO4J_streams_sink_enabled: "true" NEO4J_streams_procedures_enabled: "true" 39 Configuring Neo4j Streams (docker) NEO4J_streams_source_enabled: "true" NEO4J_streams_source_topic_nodes_fraudflags: Party{*} NEO4J_streams_source_topic_relationships_associations: ASSOCIATED{*} NEO4J_streams_source_schema_polling_interval: 10000 Take messages from the “cookies” topic, and write new cookie nodes to the graph, matched to the right party! Whenever a change is made to a Party or an ASSOCIATED link created, report that to a topic.
  • 40. 40 Graphs Back to Tables, with a little help from KSQL ● Neo4j-streams publishes CDC back to Kafka ● Define a stream using KSQL that structures that JSON ● Simple KSQL query over that stream yields all of the cases WHERE fraud_followup OR fraud_confirmed;
  • 41. 41 Confluent Cloud - KSQL Access to Graph Analytics
  • 42. Week 3: How To Expose Graph Data To Fraud Analyst Team? 42
  • 43. 43 Business View Account Activity - New Accounts - Online Accesses - Profile Updates Known Fraudulent Accounts Auditor Investigation Account Action Improved Insight Close Account Legal Action confirmed and suspected fraud cases
  • 44. Week 3: Neo4j GraphQL and GRANDstack
  • 46. ● Cluster routing (bolt+routing://) ● Bolt binary protocol ● Cypher type system ● Authentication / TLS Neo4j Client Drivers neo4j.com/developer/language-guides/
  • 49. What is GraphQL? graphql.org An API query language and runtime for building APIs @lyonwj
  • 50. ● Fullstack framework for building applications Fullstack GraphQL with GRANDstack grandstack.io @lyonwj
  • 51. “Your Application Data Is A Graph” -- GraphQL @lyonwj
  • 52. Expose A GraphQL API From Neo4j 52 GRANDstack.io
  • 53. 53 Investigative GRANDstack App React UI fetches data from Neo4j using GraphQL View data on parties or “fraud flagged” cases Select an active case to begin adjudication analysis Graph visualization enables fraud analyst to explore the connected accounts to verify fraudulent behavior. Analyst adjudicates case, updating data in Neo4j which sends an event to Kafka fraud stream via neo4j-streams
  • 54. 54 Fraud Flagger Party Interaction Stream Fraud Suspect Stream Fraud Confirmation Stream Identify Suspects Investigate suspects Adjudicate cases Investigative App Bank Internal Analyst neo4j-streams Technical View
  • 57. No PII Was Harmed in the Making of this Presentation You may see phone numbers and Social Security Numbers on screen. Most of the schema and use case is real, the data is fake.
  • 65. 65 More About Fraud Detection With Graphs
  • 67. ● Neo4j-streams: integrate Kafka & Neo4j, deploy as a Neo4j plugin or as a connect worker: ○ Code: https://github.com/neo4j-contrib/neo4j-streams ○ Kafka Connect Neo4j Sink: https://www.confluent.io/hub/neo4j/kafka-connect-neo4j ● GRANDStack: GraphQL, React, Apollo, and Neo4j for building rich web applications on graphs https://grandstack.io/ ● How to Leverage Neo4j-Streams to build a just-in-time data warehouse https://www.freecodecamp.org/news/how-to-leverage-neo4j-streams-and-build-a-just-in-time-data-warehouse-64adf290f093/ ● Neo4j Graph Algorithms https://neo4j.com/docs/graph-algorithms/current/ 67 Resources
  • 78. 78
  • 79. 79
  • 80. 80
  • 81. 81 How do Graphs and Streams Go Together?
  • 82. 82 The Trinity ● Kafka streams: a log of key/value pairs ● Tables: the latest value for each key ● Graphs: interchangeable, with rich relationships ● Why? Because: ○ Relationships matter, sometimes the pattern is more important than the individual data point ○ Table joins are hard to do and not very performant when you have many to do ○ Many problem domains are more naturally expressed as a graph
  • 83. 83 Use Case ● Top 10 largest bank is looking for fraudulent behavior in access to online accounts. ● Customers (or “Parties”) access accounts online; naturally we know their basic details (phone, SSN, address) and also their linked Credit Cards, Accounts. Cookies & IP addresses track who/how access is made
  • 84. 84 Investigative App ● Flagger sets suspicious graph algo people to fraud_followup=true ● Find records with fraud_followup=true, fraud_confirmed=false ○ This means we think something’s going on here but needs followup ○ Set a case ID. If you have a case ID but fraud_confirmed=false, then you are either investigating (and doesn’t need to be in the dashboard) or you’ve adjudicated the case and it doesn’t show. ● Possibilities: ○ Flag is bogus. In this case, leave fraud_confirmed=false, and set case ID ○ Flag is good. Then set fraud_confirmed=true and set case ID ○ Anything else is “not yet worked” ○ fraud_followup = false is an innocent bystander not worth checking. ● App gives: ○ Table of “suspects” ○ App shows parties connected - what detail do we share? How many pieces? Etc. ■ Subplot: cross-reference transactions -- this person has spent more than usual in different places lately ○ bloom deep link to suspects and where they exist in the graph ○ Some fake notion of “do the investigation” ● Toggle fraud_confirmed=true (because we’ve decided this guy is bogus)