SlideShare a Scribd company logo
1 of 27
Download to read offline
Jun 2021
Neptune Graph
Database
0 to Production
Ohad Israeli
Platform Architect @ NI
, Ohad.Israeli@naturalint.com
Whiteboard
Objects
Connections
Flow
Graphs are all around us
Places
Roads
Cars
Branches
PRs
Build Flow
Friends
Likes
Shares
Ohad Israeli
Platform Architect @ NI
20+ Years of Software Architecture
What are we
going to talk about today?
Sharing my experience of mapping
entities @ NI using AWS Neptune / Kafka / NestJS
1. Why graph database ?
2. How did we use it ?
3. What we learned ?
4. What you need to know ?
setTimeout(presentationEnd, 30min, ‘lets start');
90% 5% 5%
Natural Intelligence in a Nutshell
www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps …
Natural Intelligence in a Nutshell
6M
Leads generated
annually
9M
Monthly
Unique Visitors
130+
Countries
Reached
10
Years of
Expertise
320+
Talented
Employees
www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps …
Natural Intelligence R&D in a Nutshell
NodeJS / NestJS
Serving platform + Backend
Microservices
Java / Python
Data science / Machine learning
KAFKA / Kinesis
Event Bus
AWS
Fully invested
www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps …
meetup.com/CodeNaturally
OK, let’s get started
Chapter 1
Graph Data What ?
Databases Types
Relational Databases
Sql server
Oracle
DB2
MySQL
Postgresql
…
...
Document Databases
Aerospike
CouchDB
MongoDB
Elasticsearch
Solr
…
…
What is Graph Database ?
- No pre-defined model
- Data modeled like a drawing on a whiteboard
- Relationships between data as equally
important to the data itself
Role In the
Name
Age
Height
Phone
Name
Person Company
Graph Databases
Graph Databases
AWS Neptune
NEO4J
DataStax
JanusGraph
OrientDB
ArangoDB
Dgraph
NabulaGraph
…
…
Query Language
Gremlin
SparQL
Cypher
nGQL
Proprietary
…
…
Gremlin
g.V(person).valueMap();
SparQL
select ?p where {?p}
Cypher
MATCH (n:character {name:”person"}) RETURN properties(n)
nGQL
FETCH PROP ON character hash(”person");
Coding time start in …
github.com / israelio / graphdb-intro
Chapter 2
How did we use it ?
Entity relations mapping solution architecture
Product
Feature
Rule
Kafka
Event Bus
Graph DB
Neptune
Mapping
Service
CRUD Events
Consume Events
Gremlin Queries
Chapter 3
What did we learn ???
What do you need to know ?
Let’s get into it
● Development
● Data import
● Data export
● Testing
● Deployment
DEVELOPMENT LIFECYCLE
Mapping Service
● NodeJS MicroServices Framework ( nestjs.com )
● Extensible
● Promote Design patterns
● Reusable services
● Lots of integrations
● Typescript enabled
● KafkaJS integration (already implemented – we extended it a bit)
● AWS Neptune repository service (we wrote it internally)
Mapping
Service
NestJS + Kafka
npm i -g @nestjs/cli
● Use @EventPattern to handle Kafka events
nest new project-name
Javascript + Gremlin
import * as gremlin from 'gremlin'
● Use retry mechanism
● Use direct references
● Use UpSert pattern
● Add singularity
1
2
3
4
5
Cost explorer
AWS
Neptune
Cloud
Production / Staging
Development / Testing
MIN
250$
● Price per instance / instance type
?
Local
Cost explorer
AWS
Neptune
Cloud
Tinkerpop
Local
JanusGraph
Production / Staging
Development / Testing
MIN
250$
FREE
● In memory
● Large database is an issue in
load time and memory
consumption
● Price per instance / instance type
tinkerpop.apache.org / janusgraph.org
Dev/Test - Tinkerpop + Kafka
● Use dockers to host Tinkepop and Kafka locally
● Configure Tinkerpop server yml to use persistency / Use JanusGraph
● Add all dockers to the same network
● Add dependencies between the dockers
● Add Xeotek KaDeckWeb docker – it will assist you in dev / test / prod with kafka
● Add AWS graph notebook docker - github.com/BarrMan/graph-notebook-docker
Import / Export
Export data
Import data
Production / Staging
Development / Testing
AWS
Neptune
Cloud
Tinkerpop
Local
● Write your own code / scripts
Java/NodeJS/Python
● AWS Bulk data loader
● Write your own code / scripts
Java/NodeJS/Python
● Neptune-Export.jar
github.com/awslabs/amazon-neptune-tools
● Configure persistency
Export
Export data
● Neptune-Export.jar
github.com/awslabs/amazon-neptune-tools
● java -jar neptune-export.jar export-pg -e db-name.neptune.amazonaws.com
-d ./Neptune ß Dump to local folder
--use-ssl
--serializer GRAPHBINARY_V1D0 ß Compatibility with tinkerpop
--clone-cluster ß Create new export cluster
--clone-cluster-instance-type db.r5.larg
Production
● Use AWS support if you need – they are great !
● We had performance issue with UpSert
It took 4.5 sec to complete
we got hotfix from AWS Support and it had been fixed in a later version
● We had high CPU for low numbers of gremlin transactions even on huge instances
Use direct references to nodes / edges when you can
● Do not forget to add retry on concurrency failures
● Monitor your queries, server load and gremlin errors
Summary
- Don’t be afraid from using Graph Databases
- Use them only when / where it makes sense
( 3 – 4 joins | traversal path )
- Working with NodeJS ? - Give NestJS a try
- Event sourcing is great for system decoupling
Kafka is awesome !
More info about this topic will be posted at:
medium.com/natural-intelligence
Ohad Israeli
Platform Architect
Natural Intelligence
Ohad.israeli@naturalint.com
https://github.com/israelio/graphdb-intro

More Related Content

What's hot

What's hot (20)

SIGGRAPH Presentation 2016 Slides
SIGGRAPH Presentation 2016 SlidesSIGGRAPH Presentation 2016 Slides
SIGGRAPH Presentation 2016 Slides
 
Hey Terraform, build me GCP Infrastructure
Hey Terraform, build me GCP InfrastructureHey Terraform, build me GCP Infrastructure
Hey Terraform, build me GCP Infrastructure
 
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
 
Cloudformation vs terraform_vs_ansible
Cloudformation vs terraform_vs_ansibleCloudformation vs terraform_vs_ansible
Cloudformation vs terraform_vs_ansible
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knative
 
Techconnectseattle
TechconnectseattleTechconnectseattle
Techconnectseattle
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
 
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
 
Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
 
Fermilab aws on demand
Fermilab aws on demandFermilab aws on demand
Fermilab aws on demand
 
Go With The Flow
Go With The FlowGo With The Flow
Go With The Flow
 
Knative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and OpenshiftKnative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and Openshift
 
Industrial Light & Magic
Industrial Light & MagicIndustrial Light & Magic
Industrial Light & Magic
 
Ansible Dresden meetup (Dec 2019) - How Operators with Ansible make Kubernete...
Ansible Dresden meetup (Dec 2019) - How Operators with Ansible make Kubernete...Ansible Dresden meetup (Dec 2019) - How Operators with Ansible make Kubernete...
Ansible Dresden meetup (Dec 2019) - How Operators with Ansible make Kubernete...
 
Machine Learning Platform in LINE Fukuoka
Machine Learning Platform in LINE FukuokaMachine Learning Platform in LINE Fukuoka
Machine Learning Platform in LINE Fukuoka
 
Machine learning in the physical world by Kip Larson from AWS IoT
Machine learning in the physical world by  Kip Larson from AWS IoTMachine learning in the physical world by  Kip Larson from AWS IoT
Machine learning in the physical world by Kip Larson from AWS IoT
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute Engine
 
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
 
End-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devEnd-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.dev
 
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
 

Similar to Neptue Graph Database - 0 to Production

Similar to Neptue Graph Database - 0 to Production (20)

Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Cloud-native Patterns
Cloud-native PatternsCloud-native Patterns
Cloud-native Patterns
 
Cloud-native Patterns (July 4th, 2019)
Cloud-native Patterns (July 4th, 2019)Cloud-native Patterns (July 4th, 2019)
Cloud-native Patterns (July 4th, 2019)
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott DeegExploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with Nova
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless Toolbox
 
Confoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startConfoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to start
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
Deep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayDeep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the Bay
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 

Recently uploaded

Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Lovely Professional University
 
Final DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manualFinal DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manual
BalamuruganV28
 
Maher Othman Interior Design Portfolio..
Maher Othman Interior Design Portfolio..Maher Othman Interior Design Portfolio..
Maher Othman Interior Design Portfolio..
MaherOthman7
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdf
Kamal Acharya
 

Recently uploaded (20)

Introduction to Arduino Programming: Features of Arduino
Introduction to Arduino Programming: Features of ArduinoIntroduction to Arduino Programming: Features of Arduino
Introduction to Arduino Programming: Features of Arduino
 
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdfInstruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
Instruct Nirmaana 24-Smart and Lean Construction Through Technology.pdf
 
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdflitvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
 
Quiz application system project report..pdf
Quiz application system project report..pdfQuiz application system project report..pdf
Quiz application system project report..pdf
 
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesLinux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
 
Diploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfDiploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdf
 
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
 
Vip ℂall Girls Karkardooma Phone No 9999965857 High Profile ℂall Girl Delhi N...
Vip ℂall Girls Karkardooma Phone No 9999965857 High Profile ℂall Girl Delhi N...Vip ℂall Girls Karkardooma Phone No 9999965857 High Profile ℂall Girl Delhi N...
Vip ℂall Girls Karkardooma Phone No 9999965857 High Profile ℂall Girl Delhi N...
 
Final DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manualFinal DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manual
 
Introduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AIIntroduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AI
 
Maher Othman Interior Design Portfolio..
Maher Othman Interior Design Portfolio..Maher Othman Interior Design Portfolio..
Maher Othman Interior Design Portfolio..
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdf
 
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
 
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdfInvolute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
Involute of a circle,Square, pentagon,HexagonInvolute_Engineering Drawing.pdf
 
Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)Operating System chapter 9 (Virtual Memory)
Operating System chapter 9 (Virtual Memory)
 
Multivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptxMultivibrator and its types defination and usges.pptx
Multivibrator and its types defination and usges.pptx
 
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
The battle for RAG, explore the pros and cons of using KnowledgeGraphs and Ve...
 
"United Nations Park" Site Visit Report.
"United Nations Park" Site  Visit Report."United Nations Park" Site  Visit Report.
"United Nations Park" Site Visit Report.
 
Electrical shop management system project report.pdf
Electrical shop management system project report.pdfElectrical shop management system project report.pdf
Electrical shop management system project report.pdf
 
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptxSLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
 

Neptue Graph Database - 0 to Production

  • 1. Jun 2021 Neptune Graph Database 0 to Production Ohad Israeli Platform Architect @ NI , Ohad.Israeli@naturalint.com
  • 2. Whiteboard Objects Connections Flow Graphs are all around us Places Roads Cars Branches PRs Build Flow Friends Likes Shares
  • 3. Ohad Israeli Platform Architect @ NI 20+ Years of Software Architecture
  • 4. What are we going to talk about today? Sharing my experience of mapping entities @ NI using AWS Neptune / Kafka / NestJS 1. Why graph database ? 2. How did we use it ? 3. What we learned ? 4. What you need to know ? setTimeout(presentationEnd, 30min, ‘lets start'); 90% 5% 5%
  • 5. Natural Intelligence in a Nutshell www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps …
  • 6. Natural Intelligence in a Nutshell 6M Leads generated annually 9M Monthly Unique Visitors 130+ Countries Reached 10 Years of Expertise 320+ Talented Employees www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps …
  • 7. Natural Intelligence R&D in a Nutshell NodeJS / NestJS Serving platform + Backend Microservices Java / Python Data science / Machine learning KAFKA / Kinesis Event Bus AWS Fully invested www.naturalint.com/jobs Full Stack, Frontend, Data Scientists, QA Lead, R&D Directors, Senior DevOps … meetup.com/CodeNaturally
  • 8. OK, let’s get started Chapter 1 Graph Data What ?
  • 9. Databases Types Relational Databases Sql server Oracle DB2 MySQL Postgresql … ... Document Databases Aerospike CouchDB MongoDB Elasticsearch Solr … …
  • 10. What is Graph Database ? - No pre-defined model - Data modeled like a drawing on a whiteboard - Relationships between data as equally important to the data itself Role In the Name Age Height Phone Name Person Company
  • 11. Graph Databases Graph Databases AWS Neptune NEO4J DataStax JanusGraph OrientDB ArangoDB Dgraph NabulaGraph … … Query Language Gremlin SparQL Cypher nGQL Proprietary … … Gremlin g.V(person).valueMap(); SparQL select ?p where {?p} Cypher MATCH (n:character {name:”person"}) RETURN properties(n) nGQL FETCH PROP ON character hash(”person");
  • 12. Coding time start in … github.com / israelio / graphdb-intro
  • 13. Chapter 2 How did we use it ?
  • 14. Entity relations mapping solution architecture Product Feature Rule Kafka Event Bus Graph DB Neptune Mapping Service CRUD Events Consume Events Gremlin Queries
  • 15. Chapter 3 What did we learn ??? What do you need to know ?
  • 16. Let’s get into it ● Development ● Data import ● Data export ● Testing ● Deployment DEVELOPMENT LIFECYCLE
  • 17. Mapping Service ● NodeJS MicroServices Framework ( nestjs.com ) ● Extensible ● Promote Design patterns ● Reusable services ● Lots of integrations ● Typescript enabled ● KafkaJS integration (already implemented – we extended it a bit) ● AWS Neptune repository service (we wrote it internally) Mapping Service
  • 18. NestJS + Kafka npm i -g @nestjs/cli ● Use @EventPattern to handle Kafka events nest new project-name
  • 19. Javascript + Gremlin import * as gremlin from 'gremlin' ● Use retry mechanism ● Use direct references ● Use UpSert pattern ● Add singularity 1 2 3 4 5
  • 20. Cost explorer AWS Neptune Cloud Production / Staging Development / Testing MIN 250$ ● Price per instance / instance type ? Local
  • 21. Cost explorer AWS Neptune Cloud Tinkerpop Local JanusGraph Production / Staging Development / Testing MIN 250$ FREE ● In memory ● Large database is an issue in load time and memory consumption ● Price per instance / instance type tinkerpop.apache.org / janusgraph.org
  • 22. Dev/Test - Tinkerpop + Kafka ● Use dockers to host Tinkepop and Kafka locally ● Configure Tinkerpop server yml to use persistency / Use JanusGraph ● Add all dockers to the same network ● Add dependencies between the dockers ● Add Xeotek KaDeckWeb docker – it will assist you in dev / test / prod with kafka ● Add AWS graph notebook docker - github.com/BarrMan/graph-notebook-docker
  • 23. Import / Export Export data Import data Production / Staging Development / Testing AWS Neptune Cloud Tinkerpop Local ● Write your own code / scripts Java/NodeJS/Python ● AWS Bulk data loader ● Write your own code / scripts Java/NodeJS/Python ● Neptune-Export.jar github.com/awslabs/amazon-neptune-tools ● Configure persistency
  • 24. Export Export data ● Neptune-Export.jar github.com/awslabs/amazon-neptune-tools ● java -jar neptune-export.jar export-pg -e db-name.neptune.amazonaws.com -d ./Neptune ß Dump to local folder --use-ssl --serializer GRAPHBINARY_V1D0 ß Compatibility with tinkerpop --clone-cluster ß Create new export cluster --clone-cluster-instance-type db.r5.larg
  • 25. Production ● Use AWS support if you need – they are great ! ● We had performance issue with UpSert It took 4.5 sec to complete we got hotfix from AWS Support and it had been fixed in a later version ● We had high CPU for low numbers of gremlin transactions even on huge instances Use direct references to nodes / edges when you can ● Do not forget to add retry on concurrency failures ● Monitor your queries, server load and gremlin errors
  • 26. Summary - Don’t be afraid from using Graph Databases - Use them only when / where it makes sense ( 3 – 4 joins | traversal path ) - Working with NodeJS ? - Give NestJS a try - Event sourcing is great for system decoupling Kafka is awesome ! More info about this topic will be posted at: medium.com/natural-intelligence
  • 27. Ohad Israeli Platform Architect Natural Intelligence Ohad.israeli@naturalint.com https://github.com/israelio/graphdb-intro