A class responsible for routing requests to where they need to be in order to be handled.

Forms the top level entry point to the command dispatcher implementation.

builder pattern

A creational design pattern to provide a flexible solution to constructing complex objects from their representation.


A request that represents an action to be performed and should be executed exactly once.

command pattern

A behavioral design pattern describing an object that contains all information needed to perform an action.

command dispatcher

A design pattern to decouple the implementation of a command from its invoker. The invoker doesn’t need to know how the execution of the command is implemented, only that the command exists.


Additional information used by the middleware chain to decide how to dispatch a message.

dependency injection

Giving an object instances of its dependencies rather than having the object instantiate them itself.


A request that represents an occurrence that might trigger something to happen elsewhere in the application.

fluent interface

An object orientated API which relies on method chaining to create a domain specific language and increase legibility.


A callable that takes a request as its singular positional argument and performs an action.

handler factory

A class responsible for converting handler reference into a concrete handler instance, often via dependency injection.

handler reference

A reference to a callable which when pre-processed by a handler factory can process a request.


An container for a request and any additional context.


A class representing a link in the chain that forms a processing pipeline and defines part of how a message is dispatched.


A request that represents a query for a result and should be executed exactly once and return a value.


A command, event, or query to be sent to a bus for processing by handlers.

Requests are an example of the command pattern.


An association between a handler and the request type it wishes to process.