Announcing Spring Data Neo4j 4.0!

GraphAwareOver the last few months, the Neo4j engineers along with our friends GraphAware and Pivotal have been working on a ground-up reimplementation of Spring Data Neo4j (SDN) that is server-first and Cypher-centric. Today we are very excited to announce the first milestone of the new Spring Data project for Neo4j.

Server-first!

While Neo4j has the ability to run embedded or as a regular server-side database, a lot of users favor traditional deployments where the database can scale independently of application servers. Neo4j server has provided the capability to do this for some time now but when the original version of SDN was written, it was designed to target Neo4j in embedded (in-process) deployments.

The new version of SDN changes that. We have completely rewritten Spring Data Neo4j around a single, fast object-graph mapping library for Neo4j, optimised for server-based installations and utilising Cypher via the transactional HTTP Endpoint. In short it is the best version of SDN for Neo4j server.

Focused on performance

We know that Neo4j is very fast database, so we set ourselves the challenge of exceeding the performance of existing SDN (which, remember, runs in-process). Our ambitious aim was to match the existing performance, even over the network. We think we managed it!

To achieve our goal we introduced a number of innovations, including non-reflection based classpath scanning for much faster startup times; variable-depth persistence to allow you to fine-tune requests according to the characteristics of your graph; smart object-mapping to reduce redundant requests to the database, improve latency and minimise wasted CPU cycles; and user-definable session lifetimes, helping you to strike a balance between memory-usage and server request efficiency in your applications. But even though our focus has been on performance, at the same time we have tried to preserve the APIs that we already know as SDN users (though since we’re using a completely different communication mechanism, there are a few minor differences).

springdataNeo4j-logo

Download the SDN 4.0 Milestone 1

Download here
SDN 4.0 Documentation

Migrating from previous versions of SDN

If you are an existing SDN user, you should read the section in the documentation on migrating to the new version. While we have tried to keep the APIs consistent with previous versions, there have inevitably been some breaking changes which you will need to know about.

Examples

To make your exploration as pleasant as possible, we ported the classic example Spring Data Neo4j “cineasts” application. You can find the same domain model and service methods just using the new APIs. You can find it on GitHub.

We also created a new, more modern Web-Application, using Angular.js and Spring-Boot, which represents a university administration system, you can create teachers, students, classes and courses. This project is available on GitHub as well.

Tell us what you think!

We’d love to get your feedback on this new version of Spring Data Neo4j. Tell us what you like, as well as what you don’t, or what you’d like to see changed or added. Please bear in mind though that this is the first milestone release, so it may be a little rough in places. You can report your feedback via the project’s issue tracker (assign the issue to 4.0.0.M1) or via the spring-data-neo4j@neotechnology.com feedback email.

Now, a few thank-yous…

As well as the Neo4j engineers and GraphAware team, we’d also like to thank Mark Angrish (aka “Aussie Mark”) who helped significantly with the Spring integration. We also owe a debt of gratitude to Oliver Gierke at Pivotal. We quite literally couldn’t have done it without him.

Want to learn more about graph databases? Click below to get your free copy of O’Reilly’s Graph Databases ebook and discover how to use graph technologies for your application today. Download My Ebook

 

Keywords:  


About the Author

Michael Hunger, Developer Relations

Michael Hunger Image

Michael Hunger has been passionate about software development for a very long time. For the last few years he has been working on the open source Neo4j graph database filling many roles.

As caretaker of the Neo4j community and ecosystem he especially loves to work with graph-related projects, users and contributors. As a developer, Michael enjoys many aspects of programming languages, learning new things every day, participating in exciting and ambitious open source projects and contributing and writing software related books and articles.


4 Comments

S. Young says:

Been waiting a long time to see this, great stuff!

Viswanath says:

I’m unable to see this in the maven repository yet
see http://mvnrepository.com/artifact/org.springframework.data/spring-data-neo4j

[…] of you might be aware of the effort, we’re putting behind the Spring Data Neo4j 4.0 development with our partner […]

Jetty Prakash says:

sdn is limited interms of graph traversal ? is there a way we can create unmanaged server extension using sdn4 for traversals

I see you wrote a non-reflection-based classpath scanner. You may be interested to try FastClasspathScanner, it is also a non-reflection-based classpath scanner, and it is highly parallelized and optimized, making it an order of magnitude faster than other commonly-used classpath scanners.
https://github.com/lukehutch/fast-classpath-scanner

1 Trackback

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe

Upcoming Event

 

From the CEO

Emil's Blog


Have a Graph Question?

Stackoverflow
Slack
Contact Us

Share your Graph Story?

Email us: content@neotechnology.com


Popular Graph Topics