SlideShare a Scribd company logo
1 of 43
Download to read offline
SAN FRANCISCO | 10.22.2014 
How eBay and Shutl Deliver Even Faster Using Neo4j 
powered by
Volker Pacher 
https://github.com/vpacher 
@vpacher
Shutl
ECOMMERCE IS QUICK & CONVENIENT
PAYPAL FOR AWESOME DELIVERY 
Branded, super quick delivery that people trust, embedded in merchant websites
HUB & SPOKE 
A B 
POINT TO POINT 
Only cost effective means to deliver 10+ miles but slow and unpredictable 
A 
B 
Fast and predictable but cost prohibitive over longer distances
PHOUIBN T& TSOP OPKOEINT 
+7,500 more! 
97%3% C oCuoruierri,e Er, xEpxrpersess &s &P aPracercl eMl aMrakerktet
Shutl generates a quote from 
each relevant available carrier 
Best option picked based 
on price & quality rating 
SHOP 
££ 
£££ 
£ 
££ 
£ 
£
On checkout, a job is sent via API into the 
chosen carrier’s transportation system 
Courier collects from nearest 
store and delivers to shopper 
SHOP 
$$ 
SHOP
Track your order online…
FEEDBACK 
Shutl sends feedback email tQo uthaelit cyo isn spuamraemr osuecnotnds after they have received 
Feedbdacekliv setrrye aamskeindg u tnoe draitteed q tuoa lsithautitvl.ec oamsp/efecetsd boaf cekx &pe fraiceenbcoeok
FEEDBACK
FEEDBACK
FEEDBACK
FEEDBACK
Version One 
Ruby 1.8, Rails 2.3 and MySQL 
• Well-known tale: built quickly, worked slowly, tough to maintain 
• Getting a quote for an hour time-slot took over 4 seconds
Here is the Shutl price calendar 
To generate this in V1, the merchant site would have had to call Shutl to get 
available slots (2 seconds) 
Then, they would have to call Shutl to generate a quote for each slot - for 
two days of store opening, that’s 20+ slots 
So, that’s 2 + (20 x 4) seconds, 1:22 to generate the data for this calendar 
In V1, this UX could never have happened.
V2
• Broke app into services 
V2 
• Services focused around functions like quoting, booking, and 
giving feedback 
• Key goal for the project was improving the speed of the quoting 
operation, which is where we use a graph database
graphs to the rescue!
relationships are explicit stored
data modelling made easy
additive domain modelling
traversals of relationships are easy and very fast
DB performance remains relatively constant as 
queries are localised to its portion of the graph. 
O(1) for same query
a graph is its own index (constant query performance)
the case for Neo4j
single image graphdb
standalone or embedded in jvm
ruby/jruby
ruby libraries - neo4j gem by Andreas Ronge 
(https://github.com/andreasronge/neo4j)
cypher
the neotech guys are awesome
V1 
V2 
• Quoting for 20 windows down 
from 82000 ms to 450 ms 
• Code complexity much 
reduced
What did we learn - the good bits 
• Cypher is easy to learn (and more importantly, easy to 
remember) 
• modelling our domain turned from a chore to an 
(almost) fun exercise and provided us with insights we 
could feed back into the business 
• code maintenance has become much easier 
• new feature requests from the business are implement 
faster and with less refactoring necessary
Some gotchas 
• There was a learning curve in switching from a relational 
mentality to a graph one 
• Tooling not as mature as in the relational world 
• No out of the box solution for db migrations 
• Seeding an embedded database was unfamiliar
Testing was a challenge 
• Setting up scenarios for tests was tedious 
• Built our own tool based on the geoff syntax developed by Nigel Small 
• Geoff allows modelling of graphs in textual form and provides an 
interface to insert them into an existing graph 
(A) {“name”: “Alice”} 
(B) {“name”: “Bob”} 
(A) -[:KNOWS] -> (B) 
• We created a Ruby dsl for modelling a graph and inserting it into the db 
that works with factory_girl 
• Open source - https://github.com/shutl/geoff
SHUTL IS NOW AN COMPANY
powered by
on
Wrap Up 
• Neo4j enabled Shutl to achieve big 
performance increases in its most important 
operation - calculating delivery prices and 
availabilities 
• It’s a new tool based on tested theory, and 
cypher is the first language that allows you to 
query graphs in a declarative way (like SQL) 
• Tooling and adoption is immature but getting 
better all the time
Thank you! 
Any questions? 
@vpacher 
https://github.com/vpacher 
volker@shutl.com 
Volker Pacher 
Senior Developer

More Related Content

What's hot

Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
jexp
 

What's hot (20)

Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
 
Modular GraphQL with Schema Stitching
Modular GraphQL with Schema StitchingModular GraphQL with Schema Stitching
Modular GraphQL with Schema Stitching
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Development
 
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/MeteorWhy UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
 
Industrializing Machine learning pipelines
Industrializing Machine learning pipelinesIndustrializing Machine learning pipelines
Industrializing Machine learning pipelines
 
Graphql
GraphqlGraphql
Graphql
 
GraphQL + relay
GraphQL + relayGraphQL + relay
GraphQL + relay
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL Advanced
 
GraphQL
GraphQLGraphQL
GraphQL
 
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
 
Introduction to graphQL
Introduction to graphQLIntroduction to graphQL
Introduction to graphQL
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
 
GraphQL Europe Recap
GraphQL Europe RecapGraphQL Europe Recap
GraphQL Europe Recap
 

Viewers also liked

Equipo 3 innovación tecnológica , internet ,códigos QR
Equipo 3   innovación tecnológica , internet ,códigos QREquipo 3   innovación tecnológica , internet ,códigos QR
Equipo 3 innovación tecnológica , internet ,códigos QR
oscarsilvaaula51
 
Signos precoces básicos del diagnostico y neurobiología del tdah preescolar
Signos precoces básicos del diagnostico y neurobiología del tdah preescolarSignos precoces básicos del diagnostico y neurobiología del tdah preescolar
Signos precoces básicos del diagnostico y neurobiología del tdah preescolar
Fundación CADAH TDAH
 
Igv e ipm 2010
Igv e ipm  2010Igv e ipm  2010
Igv e ipm 2010
COEECI
 
Opeb and prefunding
Opeb and prefundingOpeb and prefunding
Opeb and prefunding
taatla
 
Work management of sm es
Work management of sm esWork management of sm es
Work management of sm es
Simone Santos
 
Cedula mafl940711 mmcrlc03.pdf subes
Cedula mafl940711 mmcrlc03.pdf subesCedula mafl940711 mmcrlc03.pdf subes
Cedula mafl940711 mmcrlc03.pdf subes
Rebeca Marin Flores
 
Millorem la redacció (1)
Millorem la redacció (1)Millorem la redacció (1)
Millorem la redacció (1)
Antònia Travé
 
Carpentier la cultura de los pueblos que habitan en las tierras del mar caribe
Carpentier   la cultura de los pueblos que habitan en las tierras del mar caribeCarpentier   la cultura de los pueblos que habitan en las tierras del mar caribe
Carpentier la cultura de los pueblos que habitan en las tierras del mar caribe
Lapiscina
 

Viewers also liked (20)

Neix Santana
Neix SantanaNeix Santana
Neix Santana
 
Intelligent Networks ATMS
Intelligent Networks ATMSIntelligent Networks ATMS
Intelligent Networks ATMS
 
iDEV.SPACE - biggest coworking space on the Balkans
iDEV.SPACE - biggest coworking space on the BalkansiDEV.SPACE - biggest coworking space on the Balkans
iDEV.SPACE - biggest coworking space on the Balkans
 
La historia de internet . terminado
La historia de internet . terminadoLa historia de internet . terminado
La historia de internet . terminado
 
Quiz sobre el fútbol fran serrano
Quiz sobre el fútbol fran serranoQuiz sobre el fútbol fran serrano
Quiz sobre el fútbol fran serrano
 
Equipo 3 innovación tecnológica , internet ,códigos QR
Equipo 3   innovación tecnológica , internet ,códigos QREquipo 3   innovación tecnológica , internet ,códigos QR
Equipo 3 innovación tecnológica , internet ,códigos QR
 
Manual peal
Manual pealManual peal
Manual peal
 
Signos precoces básicos del diagnostico y neurobiología del tdah preescolar
Signos precoces básicos del diagnostico y neurobiología del tdah preescolarSignos precoces básicos del diagnostico y neurobiología del tdah preescolar
Signos precoces básicos del diagnostico y neurobiología del tdah preescolar
 
Sesión Nº 3 Guía de Plan marketing-online para pymes
Sesión Nº 3 Guía de Plan marketing-online para pymesSesión Nº 3 Guía de Plan marketing-online para pymes
Sesión Nº 3 Guía de Plan marketing-online para pymes
 
Igv e ipm 2010
Igv e ipm  2010Igv e ipm  2010
Igv e ipm 2010
 
Opeb and prefunding
Opeb and prefundingOpeb and prefunding
Opeb and prefunding
 
Cruz roja y proyecto alter
Cruz roja y proyecto alterCruz roja y proyecto alter
Cruz roja y proyecto alter
 
Google vn dday-fin
Google vn dday-finGoogle vn dday-fin
Google vn dday-fin
 
Work management of sm es
Work management of sm esWork management of sm es
Work management of sm es
 
Portafolioeducativo Alma Navarro1
Portafolioeducativo Alma Navarro1Portafolioeducativo Alma Navarro1
Portafolioeducativo Alma Navarro1
 
LA CRÓNICA 614
LA CRÓNICA 614LA CRÓNICA 614
LA CRÓNICA 614
 
Reggeaton
ReggeatonReggeaton
Reggeaton
 
Cedula mafl940711 mmcrlc03.pdf subes
Cedula mafl940711 mmcrlc03.pdf subesCedula mafl940711 mmcrlc03.pdf subes
Cedula mafl940711 mmcrlc03.pdf subes
 
Millorem la redacció (1)
Millorem la redacció (1)Millorem la redacció (1)
Millorem la redacció (1)
 
Carpentier la cultura de los pueblos que habitan en las tierras del mar caribe
Carpentier   la cultura de los pueblos que habitan en las tierras del mar caribeCarpentier   la cultura de los pueblos que habitan en las tierras del mar caribe
Carpentier la cultura de los pueblos que habitan en las tierras del mar caribe
 

Similar to GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j

Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
Sub Szabolcs Feczak
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Patrick Chanezon
 

Similar to GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j (20)

How Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4JHow Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4J
 
HOP! Airlines Jets to Real Time
HOP! Airlines Jets to Real TimeHOP! Airlines Jets to Real Time
HOP! Airlines Jets to Real Time
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Latest Developments in H2O
Latest Developments in H2OLatest Developments in H2O
Latest Developments in H2O
 
Your easy move to serverless computing and radically simplified data processing
Your easy move to serverless computing and radically simplified data processingYour easy move to serverless computing and radically simplified data processing
Your easy move to serverless computing and radically simplified data processing
 
QCon 2014 - How Shutl delivers even faster with Neo4j
QCon 2014 - How Shutl delivers even faster with Neo4jQCon 2014 - How Shutl delivers even faster with Neo4j
QCon 2014 - How Shutl delivers even faster with Neo4j
 
Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
 
_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdf_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdf
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
SkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid CloudSkyBase - a Devops Platform for Hybrid Cloud
SkyBase - a Devops Platform for Hybrid Cloud
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Google Cloud Dataflow Two Worlds Become a Much Better One
Google Cloud Dataflow Two Worlds Become a Much Better OneGoogle Cloud Dataflow Two Worlds Become a Much Better One
Google Cloud Dataflow Two Worlds Become a Much Better One
 
Hive et Hadoop Usage chez Square
Hive et Hadoop Usage chez SquareHive et Hadoop Usage chez Square
Hive et Hadoop Usage chez Square
 
Golang @ Tokopedia
Golang @ TokopediaGolang @ Tokopedia
Golang @ Tokopedia
 
Building Enterprise OLAP on Hadoop for FSI
Building Enterprise OLAP on Hadoop for FSIBuilding Enterprise OLAP on Hadoop for FSI
Building Enterprise OLAP on Hadoop for FSI
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
 
Machine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville MeetupMachine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville Meetup
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 

More from Neo4j

More from Neo4j (20)

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 - 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 ...
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge Graphs
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with Graph
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j

  • 1. SAN FRANCISCO | 10.22.2014 How eBay and Shutl Deliver Even Faster Using Neo4j powered by
  • 4. ECOMMERCE IS QUICK & CONVENIENT
  • 5. PAYPAL FOR AWESOME DELIVERY Branded, super quick delivery that people trust, embedded in merchant websites
  • 6. HUB & SPOKE A B POINT TO POINT Only cost effective means to deliver 10+ miles but slow and unpredictable A B Fast and predictable but cost prohibitive over longer distances
  • 7. PHOUIBN T& TSOP OPKOEINT +7,500 more! 97%3% C oCuoruierri,e Er, xEpxrpersess &s &P aPracercl eMl aMrakerktet
  • 8. Shutl generates a quote from each relevant available carrier Best option picked based on price & quality rating SHOP ££ £££ £ ££ £ £
  • 9. On checkout, a job is sent via API into the chosen carrier’s transportation system Courier collects from nearest store and delivers to shopper SHOP $$ SHOP
  • 10. Track your order online…
  • 11. FEEDBACK Shutl sends feedback email tQo uthaelit cyo isn spuamraemr osuecnotnds after they have received Feedbdacekliv setrrye aamskeindg u tnoe draitteed q tuoa lsithautitvl.ec oamsp/efecetsd boaf cekx &pe fraiceenbcoeok
  • 16.
  • 17. Version One Ruby 1.8, Rails 2.3 and MySQL • Well-known tale: built quickly, worked slowly, tough to maintain • Getting a quote for an hour time-slot took over 4 seconds
  • 18. Here is the Shutl price calendar To generate this in V1, the merchant site would have had to call Shutl to get available slots (2 seconds) Then, they would have to call Shutl to generate a quote for each slot - for two days of store opening, that’s 20+ slots So, that’s 2 + (20 x 4) seconds, 1:22 to generate the data for this calendar In V1, this UX could never have happened.
  • 19. V2
  • 20. • Broke app into services V2 • Services focused around functions like quoting, booking, and giving feedback • Key goal for the project was improving the speed of the quoting operation, which is where we use a graph database
  • 21. graphs to the rescue!
  • 25. traversals of relationships are easy and very fast
  • 26. DB performance remains relatively constant as queries are localised to its portion of the graph. O(1) for same query
  • 27. a graph is its own index (constant query performance)
  • 28. the case for Neo4j
  • 32. ruby libraries - neo4j gem by Andreas Ronge (https://github.com/andreasronge/neo4j)
  • 34. the neotech guys are awesome
  • 35. V1 V2 • Quoting for 20 windows down from 82000 ms to 450 ms • Code complexity much reduced
  • 36. What did we learn - the good bits • Cypher is easy to learn (and more importantly, easy to remember) • modelling our domain turned from a chore to an (almost) fun exercise and provided us with insights we could feed back into the business • code maintenance has become much easier • new feature requests from the business are implement faster and with less refactoring necessary
  • 37. Some gotchas • There was a learning curve in switching from a relational mentality to a graph one • Tooling not as mature as in the relational world • No out of the box solution for db migrations • Seeding an embedded database was unfamiliar
  • 38. Testing was a challenge • Setting up scenarios for tests was tedious • Built our own tool based on the geoff syntax developed by Nigel Small • Geoff allows modelling of graphs in textual form and provides an interface to insert them into an existing graph (A) {“name”: “Alice”} (B) {“name”: “Bob”} (A) -[:KNOWS] -> (B) • We created a Ruby dsl for modelling a graph and inserting it into the db that works with factory_girl • Open source - https://github.com/shutl/geoff
  • 39. SHUTL IS NOW AN COMPANY
  • 41. on
  • 42. Wrap Up • Neo4j enabled Shutl to achieve big performance increases in its most important operation - calculating delivery prices and availabilities • It’s a new tool based on tested theory, and cypher is the first language that allows you to query graphs in a declarative way (like SQL) • Tooling and adoption is immature but getting better all the time
  • 43. Thank you! Any questions? @vpacher https://github.com/vpacher volker@shutl.com Volker Pacher Senior Developer