Apache Qpid Dispatch™: A Platform for Building AMQP Infrastructure

# Apache Qpid Dispatch™

## A Platform for Building AMQP Infrastructure

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