Code Monkey home page Code Monkey logo

Comments (11)

MeerKatDev avatar MeerKatDev commented on July 22, 2024

So, I guess no support for it?

from anormcypher.

freeeve avatar freeeve commented on July 22, 2024

We're working on it now, in fact. :)

from anormcypher.

rafbueno avatar rafbueno commented on July 22, 2024

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.

mborra avatar mborra commented on July 22, 2024

Hi, when is planned the release (also snapshot)?

from anormcypher.

freeeve avatar freeeve commented on July 22, 2024

Not going to make any promises right now, since I've already pushed back the date a few months. :/

from anormcypher.

Robin-des-Bois avatar Robin-des-Bois commented on July 22, 2024

Would also love to see transaction support!

from anormcypher.

zarthross avatar zarthross commented on July 22, 2024

Updated Docs URL for Rest transactions: http://docs.neo4j.org/chunked/stable/rest-api-transactional.html

from anormcypher.

Kai-Chen avatar Kai-Chen commented on July 22, 2024

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.

freeeve avatar freeeve commented on July 22, 2024

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.

Kai-Chen avatar Kai-Chen commented on July 22, 2024

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.

Kai-Chen avatar Kai-Chen commented on July 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.