0
votes

I am evaluating if I should use Spring Data Neo4j 4 or directly use the native APIs that Neo4j has. Is it possible to get the full potential of Neo4j when using Spring Data Neo4j 4 or will it limit my future usage of Neo4j?

I see the benefit with that POJO simplifies the storage of objects in the database.

2

2 Answers

4
votes

The recently updated content on https://graphaware.com/spring-data-neo4j may provide you with additional information to consider.

In my view, yes, SDN allows you to make use of the full potential of Neo4j. That said, for use cases where needed you can also sidestep SDN and make direct use of the underlying OGM and/or Cypher directly. In other words, when making use of SDN you also have the freedom and flexibility to use alternate options of what best suits your needs, so your usage does not need to be an "all SDN" or "no SDN" approach; you can mix and match as needed.

2
votes

There are 2 "native" APIs

  • There is the Java API, that you can access in unmanaged extensions or when using Neo4j as embedded
  • Neo4j java driver (a.k.a. Bolt) - this what Neo itself promotes the most

OGM (and therefore SDN) supports both embedded and bolt, with new features of Bolt being covered shortly after being released.

There are some features of the embedded database that can't be used (at least not directly, you may use them through user-defined procedures/functions). E.g. traversals etc..

You should also consider other aspects of your use case, like performance, if your domain model matches the graph model etc..