Infrastructure Concepts

Endpoint

An endpoint is an abstraction that represents a set of publishers and subscribers in communicating programs. Application architects and developers determine the set of endpoints that an application requires. Administrators formally define those endpoints. Programs create publisher and subscriber objects, which instantiate those endpoints.

Endpoint Abilities

From the perspective of a running application instance, each endpoint carries messages in up to four abilities. Direction and reach are the two dimensions that determine the set of messages that flow along each ability:

Direction
Each ability carries messages in only one of two possible directions: either inbound to the application’s subscribers, or outbound from the application’s publishers.
Reach
Each ability carries messages from only one kind of send call: either one-to-many or one-to-one, according to the number of subscribers the message can potentially reach.
Endpoint Abilities Matrix
  Inbound Outbound
One-to-Many Receive Send
One-to-One Receive Inbox Send Inbox

Transport

A transport is the underlying mechanism that moves message data between endpoint instances in programs. For example, a shared memory transport can move messages among separate program processes on a multi-core hardware platform, and a multicast transport can move messages among programs connected by a network.

Stores and Durables

You can use persistence stores and durables to strengthen message delivery assurance, to apportion message streams among a set of cooperating subscribers, or to provide last-value availability. For details, see “Persistence: Stores and Durables.”