On Wed 2016-07-20 11:51, Scott Marlow wrote:
> The transactional properties will be different in each NoSQL store,
> f.ex. in Neo4J tx.success() / tx.failure() doesn't do anything before
> tx.close() is called. So having transaction="1pc" (and "2pc") is
a way
> to unify transactional integration across different NoSQL stores.
We are taking a closer look at different Neo4j examples, to better
understand the pros/cons of allowing applications to call
tx.success/tx.failure in the JTA transaction.
I think that the advantage of enlisting Neo4j into a JTA transaction is
that it makes it easier for the application developer to coordinate
updating multiple resources within the same transaction.
That's not my preferred advantage to be honest.
My favorite is that people can use the @Transactional programming model
of EJB/CDI like they do for RDBMSes. That's a huge win.
What we are questioning here, is transparently ignoring explicit
"native" tx API calls when the JTA binding is in effect. It looked nice
on paper but has serious corner cases. So simpler might be better here.
Emmanuel