<!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">&lt;<a
          moz-do-not-send="true" href="mailto:videlalvaro@gmail.com">videlalvaro@gmail.com</a>&gt;</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>
          &nbsp; 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>