[rabbitmq-discuss] Fwd: question on the faq

Matthias Radestock matthias at lshift.net
Mon Jan 5 17:16:42 GMT 2009


Alexis Richardson wrote:
> In fact one can take two different views of transactions in the sense
> of AMQP TX:
> 
> 1. Operations are operations on *resources* - so more like databases
> (Jim Gray et al.).
> 
> 2. Operations are about control of a *stream*.

I reckon this distinction is at the heart of some of the confusion on 
this issue.

RabbitMQ is firmly in the second camp. And it *is* ACID under that 
interpretation but not the first (my earlier posts explain in what way 
it isn't).

And because ...

> Routing to a queue is acceptable streaming behaviour.  So
> if the queue fails after being routed to, then it is not unreasonable
> to treat something as having 'happened'.

... arguably, to be fully consistent with the second interpretation a 
tx.commit (and rollback) should *succeed* even if some of the queues to 
which messages/acks were delivered disappears. RabbitMQ's tx.commit 
currently returns an error for this, which is something we may want to 
change.


Matthias.




More information about the rabbitmq-discuss mailing list