[rabbitmq-discuss] request for help!

Rafael Schloming rafaels at redhat.com
Thu May 6 16:28:16 BST 2010


Martin Sustrik wrote:
> Hi Rob,
> 
> First of all I would like to define what's MQ and what's DB. It'll be 
> helpful to get the discussion more focused IMO:
> 
> With DB data are long-lived while queries are transient one-off events.
> 
> With MQ data are transient one-off events while queries are stable 
> long-lived entities.

I would use the term filter in this context. Queries can generally do 
more advanced things like joins and sub queries which don't make sense 
in the context of live data feeds. Filtering that is the subset of 
querying that is common to both archived data and live data feeds.

> My suggestion would be to stretch the abstraction of ignoring the 
> internal node state/algorithms to fully cover the node behaviour:
> 
> 1. Node is a named endpoint for links and that's it.
> 
> 2. There's no concept of message being resident on a node.
> 
> 3. There's no message ordering defined. This follows from the above.
> 
> 4. There's no message state machine. This follows from 2.
> 
> 3. There are no destructive/non-destructive links, just "links".
> 
> Adopting the points above would make core specification much cleaner. 
> The burden of defining storage/ordering/routing etc. is left to "broker 
> behaviour" specification.

I believe this is the intention, and I think we're pretty consistent 
about this up until the messaging book where we start using the term 
node in a narrower way. I think we would benefit from introducing some 
terms like "[lossy] repeaters" to define some broad classes of 
specialized nodes and adjust some of the content in the messaging book 
to use those terms instead of talking about nodes in a way that narrows 
the meaning of the term.

I think from there the broker behavior specification could further 
define the specialized behaviors of queues, topics, etc.

--Rafael




More information about the rabbitmq-discuss mailing list