Transaction semantics?

7 views
Skip to first unread message

Alexz

unread,
Nov 11, 2011, 3:28:00 PM11/11/11
to Goat Rodeo
All,

the longer I work on the distributed stuff for Goat Rodeo, the more
I feel like it's not worth the effort to support XA semantics. Three
reasons come to mind:

- apps will often be deployed on clouds => unreliable by design =>
the frameworks should expose, not hide the fallibility
- the data stores used are just as often likely to be non-
transactional (e.g. Mongo)
- I'm not aware of a transport that so much as purports to offer
XA semantics and doesn't drive the user insane in the process.
RabbitMQ makes the claims, but the details of the implementation hide
a menagerie of devils + I'd prefer a _much_ lighter weight transport
(both Redis PubSub and ømq seem to work out charmingly so far.)

Are there hefty reasons I'm missing that would compel Goat Rodeo to
scale the distributed transactions peak?

Kind Regards,
- z

David Pollak

unread,
Nov 11, 2011, 6:13:37 PM11/11/11
to goat-...@googlegroups.com
The implementation of the distributed Goat stuff does distributed transactions.  There's no way to actually guarantee a commit in any system... two phase is more reliable than single phase, but there are still situations where a 2 phase commit can fail.  Right now, the existing transaction semantics are "reasonable" and have a lower probability of leaving the system in an unknown state than a home-grown solution.
--
You received this message because you are subscribed to the Google Groups "Goat Rodeo" group.
To post to this group, send email to goat-...@googlegroups.com.
To unsubscribe from this group, send email to goat-rodeo+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/goat-rodeo?hl=en.

Alex Zuzin

unread,
Nov 11, 2011, 6:21:42 PM11/11/11
to goat-...@googlegroups.com
Just to make sure I'm not missing something - what's there right now is basically an extension of existing local semantics to use Rabbit for transport instead of "!"'ing to a local actor, correct? 

- z

-- 
"If you can't conceal it well, expose it with all your might"
Alex Zuzin

David Pollak

unread,
Nov 11, 2011, 6:37:47 PM11/11/11
to goat-...@googlegroups.com

On Friday, November 11, 2011 at 3:21 PM, Alex Zuzin wrote:

Just to make sure I'm not missing something - what's there right now is basically an extension of existing local semantics to use Rabbit for transport instead of "!"'ing to a local actor, correct? 
There's a lot more there, now.

You can mark a message as being part of a transaction (I think you mix a trait into the message) and that message and all cascaded messages will be transactional.  If it's an ask/answer, then the answer will be returned as part of a transaction.  The existing tests should demonstrate how to do transactional messages.

David Pollak

unread,
Nov 18, 2011, 7:22:23 PM11/18/11
to goat-...@googlegroups.com

On Friday, November 11, 2011 at 3:21 PM, Alex Zuzin wrote:

Just to make sure I'm not missing something - what's there right now is basically an extension of existing local semantics to use Rabbit for transport instead of "!"'ing to a local actor, correct? 
There's a lot more there, now.

You can mark a message as being part of a transaction (I think you mix a trait into the message) and that message and all cascaded messages will be transactional.  If it's an ask/answer, then the answer will be returned as part of a transaction.  The existing tests should demonstrate how to do transactional messages.
 
Reply all
Reply to author
Forward
0 new messages