13
Neo4j + MongoDB SF Graph Database Meetup

Neo4j + MongoDB - SF Graph Database Meetup Group Presentation

Embed Size (px)

Citation preview

Neo4j + MongoDB

SF Graph Database Meetup

About

Developer Relations Engineer @[email protected]

@lyonwjlyonwj.com

William Lyon

Agenda

• Super brief overview of MongoDB• Why MongoDB + Neo4j?• Neo4j Doc Manager • New community project

• Demo!

MongoDB

Document Database

• Document datamodel• JSON-like documents (BSON)• Ad hoc queries• Replication / sharding• Load balancing• Capped collections• Help with job queue

implementation

Why Neo4j + MongoDB?

Polyglot persistence• Take advantage of features of each database technology• http://martinfowler.com/bliki/PolyglotPersistence.html

• Native graph datamodel• Index free adjacency• Pattern matching queries

• Document datamodel• Performant document reads / writes• Aggregation (MapReduce)

Polyglot Persistence

http://www.jamesserra.com/archive/2015/07/what-is-polyglot-persistence/

Functionality Database type

Shopping Cart Rapid session reads / writes

Key-value store

Orders / Product Catalog

Frequent reads Document

Customer social graph

Recommendation Graph

Neo4j + MongoDB = Connected Documents

What insights can we draw from connected documents?• Recommendations

http://www.lyonwj.com/2015/05/28/content-recommendation-from-links-shared-on-twitter/

Neo4j Doc Manager

Mongo Connector• Automatically sync documents from

MongoDB to Neo4j• Convert BSON documents into graph

model• Alpha version on Github - feedback

welcome!

https://github.com/neo4j-contrib/neo4j_doc_manager

Neo4j Doc ManagerAutomatically sync documents from MongoDB to Neo4j

Neo4j Doc ManagerConverts BSON documents into property graph model

• Documents converted to property graph model

• Based on structure of the document

Neo4j Doc Manager

Feedback welcome!• Alpha version

https://github.com/neo4j-contrib/neo4j_doc_manager

Neo4j Doc Manager

Docker test environment• Neo4j, MongoDB, neo4j-doc-manager• Docker compose• https://github.com/JoergM/neomongo

DEMO…