Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GraphConnect 2014 SF: Applying the GraphAware Framework

GraphConnect 2014 SF: Applying the GraphAware Framework

  • Login to see the comments

  • Be the first to like this

GraphConnect 2014 SF: Applying the GraphAware Framework

  1. 1. GraphAware Framework advanced Neo4j use cases ! ! Michal Bachman @graph_aware SAN FRANCISCO | 10.22.2014 powered by GraphAwareTM
  2. 2. Advanced Use Cases GraphAware Framework (implementing advanced functionality) GraphAware Framework Modules (built by us, used by you) GraphAwareTM About this Talk
  3. 3. GraphAwareTM Advanced Use Cases Custom APIs Transaction-Driven Behaviour Asynchronous Computation
  4. 4. GraphAwareTM Advanced Use Cases Custom APIs Transaction-Driven Behaviour Asynchronous Computation
  5. 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. 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 …
  7. 7. GraphAware Framework makes it extremely easy to build, test, and deploy custom Neo4j APIs. GraphAwareTM Custom APIs (How?)
  8. 8. Custom APIs - How? (GraphAware) GraphAwareTM pure Spring MVC test with GraphUnit drop to plugins restart Neo
  9. 9. GraphAwareTM Custom APIs - Example representing time in Neo4j storing and querying time series data GraphAware TimeTree
  10. 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
  11. 11. GraphAwareTM TimeTree Demo
  12. 12. GraphAwareTM Advanced Use Cases Custom APIs Transaction-Driven Behaviour Asynchronous Computation
  13. 13. Transaction-Driven Behaviour - What? GraphAwareTM Neo4j is fully ACID “Triggers” on steroids Implemented and tested (!) in Java
  14. 14. Transaction-Driven Behaviour - Why? GraphAwareTM Integrations with other systems In-graph indexing Additional modifications Schema enforcement
  15. 15. Transaction-Driven Behaviour (How?) GraphAware Framework makes it extremely easy to build, test, and deploy custom Transaction- Driven functionality. GraphAwareTM
  16. 16. Transaction-Driven Behaviour - Examples GraphAwareTM Tracking changes in your graph (demo) Assigning a UUID to each node (demo) Defining and enforcing constraints (wip) Auditing …
  17. 17. Transaction-Driven Behaviour - Demo GraphAwareTM
  18. 18. GraphAwareTM Advanced Use Cases Custom APIs Transaction-Driven Behaviour Asynchronous Computation
  19. 19. Asynchronous Computation - What? GraphAwareTM Neo4j is primarily OLTP Requests drive transactions How about background computation?
  20. 20. Asynchronous Computation - Why? GraphAwareTM Interesting graph algorithms Expensive in real-time Can be approximate Can be approximated There are quiet periods / dedicated slaves
  21. 21. Asynchronous Computation (How?) GraphAware Framework makes it possible to build, test, and deploy functionality executed in the background during quiet periods. GraphAwareTM
  22. 22. Asynchronous Computation - Examples GraphAwareTM Page Rank Recommendations Similarities Centralities Statistics …
  23. 23. GraphAwareTM Asynchronous Computation - Demo
  24. 24. GraphAware Framework makes it easy to build, test, and deploy generic as well as domain-specific functionality for Neo4j. GraphAwareTM GraphAware Framework
  25. 25. GraphAwareTM GraphAware Framework TimeTree Algorithms ChangeFeed UUID NodeRank
  26. 26. GraphAwareTM GraphAware Framework GraphUnit & RestTest RelCount WarmUp Schema (wip) Recommendation Engine (wip)
  27. 27. GraphAwareTM GraphAware Framework Open Source (GPL) Active Production Ready Github (http://github.com/graphaware) Our Web (http://graphaware.com) Maven Central
  28. 28. GraphAwareTM GraphAware Framework Try it Give us feedback Contribute Build Own Modules Get in touch for consultancy / support info@graphaware.com / @graph_aware
  29. 29. Thank You! www.graphaware.com @graph_aware @bachmanm GraphAwareTM

×