Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-1337

Fallback Destination for Unreachable Addresses

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.8.0
    • Component/s: Router Node
    • Labels:
      None

      Description

      This feature allows addresses to be configured such that an alternate fallback destination can be used to receive messages that are not deliverable to any normal consumers on the address.

      Typically, this feature will be used to allow a message broker to store messages that are not routable directly to consumers.  When one or more consumers are attached in the router network, messages shall be delivered directly to the consumers.  Where there are no reachable consumers, deliveries shall then be diverted to any fallback links that are attached.  Once consumers re-connect to the network, messages shall again be delivered directly.

      When a consumer comes online after messages have been stored in a broker, it shall receive the stored messages interleaved with new messages from producers.  No attempt shall be made by the router network to preserve the original delivery order of the messages.

      This feature can be configured by adding the attribute

          enableFallback: yes
      

      to an address configuration. This attribute tells the router that any address matching the configuration shall support the fallback destination capability.

      There are two ways to create a fallback link for an address:

      Using auto-links:

      An auto-link (or a pair of auto-links) can be configured to create a fallback link for an address. For example, assume that there is a route-container connector or listener for a broker called "alternate-broker".

      address {
          prefix: position_update
          enableFallback: yes
      }
      
      autoLink {
          address: position_update.338
          direction: in
          connection: alternate-broker
          fallback: yes
      }
      
      autoLink {
          address: position_update.338
          direction: out
          connection: alternate-broker
          fallback: yes
      }
      

      The above configuration will use a queue on the broker called "position_update.338" as the fallback destination for direct consumers. Furthermore, since there are both in and out auto-links, the router(s) shall send queued messages to newly attached direct consumers.

      Using terminus capabilities:

      As an alternative to using auto-links, the broker (or any other process) can attach sending and receiving links to the address with terminus-capability "qd.fallback". This will create the same behavior as the above example.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tross Ted Ross
                Reporter:
                tross Ted Ross
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: