<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
On 28/04/11 15:56, Tony Garnock-Jones wrote:
<blockquote
cite="mid:BANLkTik0Znpfvz7DxK_Je=hmurCNys08Xg@mail.gmail.com"
type="cite">On 28 April 2011 10:32, Alvaro Videla <span dir="ltr"><<a
moz-do-not-send="true" href="mailto:videlalvaro@gmail.com">videlalvaro@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
do you think is a good idea to specify backing queue
implementation during 'queue.declare'?<br>
</blockquote>
<div><br>
It seems to me like it's <i>very</i> clearly the Right Thing
to do.<br>
</div>
</div>
</blockquote>
<blockquote
cite="mid:BANLkTik0Znpfvz7DxK_Je=hmurCNys08Xg@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<div><br>
Exchanges and queues are similar in a lot of ways; in
particular, they can be seen as special cases of a more
general kind of lump of functionality, so being able to
specify exchange types is a clue that being able to specify
queue types might also be useful.<br>
</div>
</div>
</blockquote>
Going further, I think it makes sense to allow things other than
queues to be bound into exchanges.<br>
<br>
The only thing that really matters is the thing that's bound into
the exchange can accept a message. What it does with the message
afterwards (queues it, puts it in a map, or whatever) the exchange
doesn't need to know about.<br>
<br>
FWIW, this was actually at the core of the design of HornetQ when I
was doing that. In some ways the HQ model is similar to AMQP
0.8/0.9.x, there is a concept of an postoffice (which is similar to
an exchange), then things called "bindings" are bound into the
exchange using a specific key (binding key). Binding is just an
interface which accepts a message (or not).<br>
<br>
Concrete binding types are Queue (which is like an AMQP queue only
more a bit more sophisticated - (it supports message selectors,
priorities etc), LVQ, and Divert - this takes a message and
re-routes back through the postoffice under a different routing key,
it can also copy a message and "siphon" it off elsewhere. You can
also create your own and add them to the postoffice.<br>
<br>
Anyway, the point is you can do some really sophisticated things
when you combine exchanges and "things that accept messages" rather
than just exchanges and queues.<br>
<blockquote
cite="mid:BANLkTik0Znpfvz7DxK_Je=hmurCNys08Xg@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<div>
<br>
More generally, AMQP in some sense wants to be a model of a
named-soup-of-objects-in-the-broker (hence AMQP 1.0's
approach, as I understand it), so from this point of view
having named classes (fanout exchange, direct exchange,
queue-backed-by-rabbit, queue-backed-by-riak, etc) and as
generic a factory/constructor method as possible (in 0-9-1
unavoidably split into at least exchange.declare and
queue.declare) makes a fair bit of sense.<br>
<br>
Regards,<br>
Tony<br>
<br>
</div>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
rabbitmq-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a>
<a class="moz-txt-link-freetext" href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a>
</pre>
</blockquote>
<br>
</body>
</html>