Introducing GraphAware Neo4j Framework
by Michal Bachman
In this short blog post, I would like to introduce the GraphAware Neo4j Framework. Its goal is very ambitious: we’d like to make it as useful for Neo4j developers, as the Spring Framework is for Java developers. The Framework aims at speeding up development with Neo4j by providing a platform for building useful generic as well as domain-specific functionality, analytical capabilities, graph algorithms, and more.
Features Overview
On a high level, there are two key pieces of functionality, GraphAware Server and GraphAware Runtime. GraphAware Server is a Neo4j server extension that allows developers to build (REST) APIs on top of Neo4j using Spring MVC, rather than JAX-RS. GraphAware Runtime is a runtime environment for both embedded and server deployments, which allows the use of pre-built as well as custom modules called “GraphAware Runtime Modules”. These modules typically extend the core functionality of the database by transparently enriching/modifying/preventing ongoing transactions in real-time.
Additionally, for Java developers only, there is additional functionality, such as:
- GraphUnit - a library for simple graph unit-testing
- a Performance Testing Library
- an API Testing Library
- Improved Neo4j Transaction API
- convenient Transaction Executor and a Batch Transaction Executor
- plus a few miscellaneous utilities
What’s Next?
Some of the Framework features will be introduced in detail in subsequent blog posts - this one is here just to whet your appetite. In the meantime, feel free to:
- have a look at the GitHub repository
- try to crunch through some of the documentation there (very much work in progress!)
- have a look at the Javadoc
- Download the framework and play around with it
- feel free to contact us if you would like to contribute of if you have any feedback at all
- come to the today’s GraphPub, if you’re based in or around London, I’ll be introducing GraphUnit in a lightning talk
- stay tuned!
UPDATE: Next post in the series: GraphUnit: Testing Neo4j Code