<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi<br>
    <br>
    On 02/04/2013 07:54 AM, Arizanov wrote:
    <blockquote
      cite="mid:d2777947-5cc3-4ee6-afe4-45aca918604f@googlegroups.com"
      type="cite">Hi guys,
      <div><br>
      </div>
      <div>We are doing some realtime replication of critical data and
        there may be cases when the RabbitMQ cluster is unaccessible.
        E.g. the cluster is being patched or there just a network
        connectivity issue. On one side we can have local rabbitmq
        installations inside the webserver and shovels, which transmit
        the data to the cluster. On the other side, we can develop our
        own database and a service over it, which is scheduled to
        transmit the messages to the cluster when it becomes available.
        So is using the 'shovel' the best practise? Does the statement&nbsp;</div>
      <div>"A shovel behaves like a well-written client application,
        which connects to its source and destination, reads and writes
        messages, and copes with connection failures." from&nbsp;<a
          moz-do-not-send="true"
          href="http://www.rabbitmq.com/shovel.html">http://www.rabbitmq.com/shovel.html</a>
        means so?</div>
      <div><br>
      </div>
    </blockquote>
    <br>
    Reading from ..., <br>
    <br>
    "Whereas federation aims to mirror messages from one exchange to
    another (with optimisations to ensure that messages are not
    forwarded unless needed), the shovel simply consumes messages from a
    queue on one broker, and forwards them to an exchange on another. "<br>
    <br>
    So with the Shovel, because you "Choose Availability and Partition
    Tolerance from the <a
      href="http://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a>",
    there is the possibility that you'll end up with duplicate messages.
    You can tweak the 'republish' semantics to compensate for this if
    you like, and of course yes the Shovel will attempt to reconnect
    (and this is also configurable) on connection failure.<br>
    <br>
    You might want to consider Federation if you don't need to low level
    of control that the Shovel offers.<br>
    <br>
    Cheers,<br>
    Tim<br>
  </body>
</html>