Qpid Dispatch is a library to help developers build infrastructure components for AMQP. Dispatch is not a general-purpose Messaging API. Rather, it is a foundation on which to build applications, services, and appliances that need direct access to the detailed constructs of AMQP.


Overview

Dispatch is an extension of the Engine and Driver interfaces of Qpid Proton. It neither uses nor exposes the Messenger interface of Proton. Rather, it provides a way for developers to use Proton's more detailed Engine facility. The following features are provided:

  • An asynchronous, event-oriented application environment
  • Safe multi-threaded use of Proton
  • Operating System Signal handling
  • Quiesce and Resume for the application's threads
  • Timers
  • Resilient outbound connections (retry/reconnect)
  • Polling support for the application's non-AMQP file descriptors
  • An AMQP Node Container that allows the developer to create custom node types


Architecture

  • Proton Engine and Driver provide the underlying AMQP capability
  • Dispatch Server wraps Proton connections in a multi-threaded server environment
  • Dispatch Container provides management of AMQP nodes (links, termini, and deliveries)
  • Dispatch Message provides efficient message encode/decode, optimized for messaging intermediaries
  • The Application uses all of the above services to implement scalable and performant AMQP infrastructure