Innovate. Share. Connect.Chicago June 12-13Keeping User Generated ContentKeeping User Generated ContentFlexible with Neo4j...
My background• Manager of Web Development at Methodist Le BonheurHealthcare• Ph.D. candidate focusing on qualitative usabi...
Caveats• Not just about Neo4j• Three weeks ago• Work in progress
Agenda• Problems• Motivation & Goals• Tech stack• Why Neo4j• Examples• Bit of code
Problems• Projects• Form Builder• Social Forum
Motivation & Goals• Project Motivation• It’s the right tool• Growth of graph DB usage• Goals• Build UI to create flexible ...
Now what?
Tech stack
Mustache• "logic-less": no explicit control flow statements• all control driven by data• strong "separating logic from pre...
Mustache.javaSam Pullara@sampullara• Works well with progressiveenhancement• Mock data is replaced at runtime• Used at twi...
Spring Data Neo4j• Object-Graph-Mapping of annotated POJO entities• Neo4jTemplate with convenient API, exception translati...
Using Spring Data Neo4jMichael Hunger@mesirii
Why Neo4j?• A native java API• Access via a RESTful server protocol• There are lots of language bindings• Proven with cust...
Why Neo4j?• Whiteboard friendly• Relationships have 1st class status
Why Neo4j?• Schema-less• Semi-structured data• Speed at getting connected data
Examples – Form Builder
Examples – Social Forum
Demo & Bit of Code• Mustache• Spring Data Neo4j• Java reflection
Questions?Greg Jordan@gmjordan
Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013
Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013
Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013
Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013
Upcoming SlideShare
Loading in …5
×

Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013

876 views

Published on

In this session, we'll examine how Crowdplace has used Neo4j to keep connected, user-generated content flexible and fast. We'll first take a look at how Neo4j helped us achieve a manageable & dynamic structure for content as well as how it compares to our experience with other persistence alternatives. Next, we'll take a look at how we used spring data + Neo4j and related libraries to create a REST service to support different UIs. Finally, we’ll share tips & caveats in migrating from mysql, some interesting cypher queries and next steps in expanding use of Neo4j.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
876
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Keeping User Generated Content Flexible with Neo4j - Greg Jordan @ GraphConnect Chicago 2013

  1. 1. Innovate. Share. Connect.Chicago June 12-13Keeping User Generated ContentKeeping User Generated ContentFlexible with Neo4jFlexible with Neo4jGreg JordanGreg Jordan
  2. 2. My background• Manager of Web Development at Methodist Le BonheurHealthcare• Ph.D. candidate focusing on qualitative usability• 15 years of programming experience• Java• Content management systems• Mobile development (iOS, Android and, yes, Blackberry)• Working with Neo4j for about a year
  3. 3. Caveats• Not just about Neo4j• Three weeks ago• Work in progress
  4. 4. Agenda• Problems• Motivation & Goals• Tech stack• Why Neo4j• Examples• Bit of code
  5. 5. Problems• Projects• Form Builder• Social Forum
  6. 6. Motivation & Goals• Project Motivation• It’s the right tool• Growth of graph DB usage• Goals• Build UI to create flexible structure• Generate input markup from structure• Generate input rules from structure• Generate list & item display markup• Speed kills
  7. 7. Now what?
  8. 8. Tech stack
  9. 9. Mustache• "logic-less": no explicit control flow statements• all control driven by data• strong "separating logic from presentation”• it is impossible to embed application logic in the Mustache templates** Depends on how you define logic
  10. 10. Mustache.javaSam Pullara@sampullara• Works well with progressiveenhancement• Mock data is replaced at runtime• Used at twitter & netflix
  11. 11. Spring Data Neo4j• Object-Graph-Mapping of annotated POJO entities• Neo4jTemplate with convenient API, exception translation and optionaltransaction management• Cross-store support for partial JPA - Graph Entities
  12. 12. Using Spring Data Neo4jMichael Hunger@mesirii
  13. 13. Why Neo4j?• A native java API• Access via a RESTful server protocol• There are lots of language bindings• Proven with customers like Cisco, Adobe and Jive
  14. 14. Why Neo4j?• Whiteboard friendly• Relationships have 1st class status
  15. 15. Why Neo4j?• Schema-less• Semi-structured data• Speed at getting connected data
  16. 16. Examples – Form Builder
  17. 17. Examples – Social Forum
  18. 18. Demo & Bit of Code• Mustache• Spring Data Neo4j• Java reflection
  19. 19. Questions?Greg Jordan@gmjordan

×