The document discusses GraphAware Framework, which makes it easy to build, test, and deploy custom APIs, transaction-driven behavior, and asynchronous computation functionality for Neo4j. It provides examples like representing time series data, tracking graph changes, assigning UUIDs, and running algorithms. GraphAware Framework is open source and supports building both generic and domain-specific Neo4j extensions.
1 of 33
Downloaded 13 times
More Related Content
Advanced Neo4j Use Cases with the GraphAware Framework
2. Advanced Use Cases
GraphAware Framework (implementing advanced functionality)
GraphAware Framework Modules (built by us, used by you)
GraphAwareTM
About this Talk
5. GraphAwareTM
Custom APIs - What?
a.k.a. unmanaged extensions
Stored procedures on steroids
Implemented and tested (!) in Java
Deployed with Neo4j (same lifecycle)
6. GraphAwareTM
Custom APIs - Why?
Access to native Neo4j API (Java)
Performance
Locking
Too complex for Cypher
Functions missing in Cypher
Custom input/output format
Limit to read-only
Code to Data
7. GraphAware Framework makes it extremely easy
to build, test, and deploy custom Neo4j APIs.
GraphAwareTM
Custom APIs (How?)
8. Custom APIs - How? (GraphAware)
GraphAwareTM
pure Spring MVC
test with GraphUnit
drop to plugins
restart Neo
9. GraphAwareTM
Custom APIs - Example
representing time in Neo4j
storing and querying time series data
GraphAware TimeTree
10. Email
Month
from: "..@.."
to: "..@.."
text: ""
Year
Day
value: 24
SENT_ON
Month
value: 4
Day
value: 23
Day
value: 22
CHILD
NEXT NEXT
value: 5
FIRST NEXT
LAST
CHILD
CHILD
value: 2014
FIRST
LAST
CHILD
CHILD
TimeTreeRoot
CHILD
FIRST
LAST
17. Transaction-Driven Behaviour - What?
GraphAwareTM
Neo4j is fully ACID
Triggers on steroids
Implemented and tested (!) in Java
18. Transaction-Driven Behaviour - Why?
GraphAwareTM
Integrations with other systems
In-graph indexing
Additional modifications
Schema enforcement
19. Transaction-Driven Behaviour (How?)
GraphAware Framework makes it extremely easy
to build, test, and deploy custom Transaction-
Driven functionality.
GraphAwareTM
20. Transaction-Driven Behaviour - Examples
GraphAwareTM
Tracking changes in your graph (demo)
Assigning a UUID to each node (demo)
Defining and enforcing constraints (wip)
Auditing
23. Asynchronous Computation - What?
GraphAwareTM
Neo4j is primarily OLTP
Requests drive transactions
How about background computation?
24. Asynchronous Computation - Why?
GraphAwareTM
Interesting graph algorithms
Expensive in real-time
Can be approximate
Can be approximated
There are quiet periods / dedicated slaves
25. Asynchronous Computation (How?)
GraphAware Framework makes it possible to
build, test, and deploy functionality executed in
the background during quiet periods.
GraphAwareTM
28. GraphAware Framework makes it easy to build,
test, and deploy generic as well as domain-specific
functionality for Neo4j.
GraphAwareTM
GraphAware Framework
31. GraphAwareTM
GraphAware Framework
Open Source (GPL)
Active
Production Ready
Github (http://github.com/graphaware)
Our Web (http://graphaware.com)
Maven Central
32. GraphAwareTM
GraphAware Framework
Try it
Give us feedback
Contribute
Build Own Modules
Get in touch for consultancy / support
info@graphaware.com / @graph_aware