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..