Comments (11)
So, I guess no support for it?
from anormcypher.
We're working on it now, in fact. :)
from anormcypher.
Great ! :)
On 12 February 2014 15:27, Wes Freeman [email protected] wrote:
We're working on it now, in fact. :)
Reply to this email directly or view it on GitHubhttps://github.com//issues/15#issuecomment-34893009
.
Rafael Bueno-----------------------------
from anormcypher.
Hi, when is planned the release (also snapshot)?
from anormcypher.
Not going to make any promises right now, since I've already pushed back the date a few months. :/
from anormcypher.
Would also love to see transaction support!
from anormcypher.
Updated Docs URL for Rest transactions: http://docs.neo4j.org/chunked/stable/rest-api-transactional.html
from anormcypher.
Architectural Concerns
Existing Java libraries for Transaction are not immediately usable, as all the ones that I looked at store Transaction details in a ThreadLocal object. While this would work in a thread-per-request environment common in JEE containers, in an asynchronous environment like Play, where the same thread could end up serving multiple on-going requests, this would cause problems.
The standard Scala approach would be using an implicit parameter for Transaction-aware connections with the Loan pattern. The advantage is that we get to keep asynchronous processing; the disadvantage is that it won't fit into something like the Spring Framework. To address the second part, though. writing an adapter, or even an JTA wrapper, should not be a show-stopper as we can always give up asynchronous and block in environments that don't mind blocking IO, thus falling back to ThreadLocal-based mechanisms.
Backwards Compatibility
The tougher part is to keep the current API working, because the Neo4j endpoints are different for transactions. On top of that, the JSON response is also slightly different. So we might have to have a separate API for transactional statements. This will be the first attempt at least.
from anormcypher.
What about the new protocol? There's actually a java library by Neo that provides a socket/stream per session. Not sure if that would work... Definitely faster than json. https://github.com/neo4j/neo4j-java-driver
from anormcypher.
Looks nice! It's in anticipation of the 3.0 release, though. I like the JDBC-like API, and I suppose once it's solid enough, AnormCypher can just slim down to a thin wrapper of it for Scala :) Kinda makes me wonder if it might be better to just wait. On the other hand, I do need to have the transaction feature now, not a couple of months later. Hmmm :)
The syntax work is going to be necessary anyway. So that part is not a throw-away.
from anormcypher.
Backwards Compatibility
The current CypherStatement APIs will be transparently moved to using the transaction endpoint. Each statement will execute in a single-request, auto-commit transaction.
Error handling gets a bit tricky as the server no longer sends HTTP error codes but streams all results, including error, in a 200 response. See commit 4bff4a1.
NeoNode and NeoRelationship mapping will be changed to using the new plain json format returned from the tx endpoint. Even with the 'resultDataContents' : [ 'REST' ]
in the request body, if a node is returned along with a projection, the plain json format is always used. So one would not be able to get the meta data unless the Cypher statement specifically returns only nodes, relationships.
from anormcypher.
Related Issues (20)
- Add Play 2.5 support HOT 2
- NoSuchMethodError with Play 2.5 HOT 21
- With Neo4j 3.0.x, Cypher query returning 2 results per record (one with actual value, one with null) HOT 7
- Generating Dynamic CQL in AnormCypher HOT 2
- Parse meta data returned from neo4j 3.0 tx endpoint
- Use macro to ensure that all code within the withTx block is executed sequentially HOT 1
- A number of the tests are failing with an exception HOT 5
- AnormCypher fails resolving dependencies HOT 5
- Neo4jREST.mapFormat doesn't support JsNull values HOT 5
- neo4j-jdbc HOT 3
- Async transaction support
- Cannot query data with neo4j 3.2.1 HOT 1
- initialCommands in console
- Query performance regressions since v0.7.1 HOT 2
- repo.anormcypher.org down HOT 3
- Clustering
- Release version for 2.12 HOT 1
- NingWSClient requires akka.stream.Materializer, and is deprecated
- Mirror packages on Maven Central HOT 1
- [email protected]
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from anormcypher.