This package contains interfaces and classes used to create message queues. Additionally, it contains classes used to create some specific types of message queues, such as cached and memory message queues.



Interface for asynchronous message queues. Not all queues may implement all the methods. Attempt to call non-supported method will result in NotImplemented exception. To verify if a specific method is supported check MessagingCapabilities.


Callback interface used to receive incoming messages.



Message queue that caches received messages in memory to allow peek operations that may not be supported by the undelying queue.
This queue is used as a base implementation for other queues


Wraps a message callback into IMessageReceiver


Data object used to store and lock incoming messages in MemoryMessageQueue.


Message queue that sends and receives messages within the same process by using shared memory.
This queue is typically used for testing to mock real queues.


Allows adding additional information to messages. A correlation id, message id, and a message type are added to the data being sent/received. Additionally, a MessageEnvelope can reference a lock token.

Side note: a MessageEnvelope’s message is stored as a buffer, so strings are converted using utf8 conversions.


Abstract message queue that is used as a basis for specific message queue implementations.


Data object that contains the supported capabilities of a message queue. If certain capability is not supported a queue will throw a NotImplemented exception.