[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