NServiceBus transports can be divided into several categories:
- Federated transports
- Broker transports
- Unicast-only transports
- Multicast-enabled transports
A description of each of these appears in the corresponding category below.
Federated transports
Federated transports are inherently distributed. Each endpoint instance may connect to a different node of the queueing technology. Messages are routed transparently between the nodes but the physical routing layer must contain information as to which node a particular endpoint is connected to.
Federated transports include:
Broker transports
Broker transports are inherently centralized. Even if there are multiple servers, there is a single logical instance that hosts all the queues (and/or topics/exchanges).
Broker transports include:
Unicast-only transports
Unicast-only transports do not have the notion of topics, exchanges, or similar concepts; only queues. Because of this, they allow only point-to-point communication. Sending a message to multiple receivers (e.g. publishing an event) involves of multiple transport-level sends. Unicast-only transports require subscription storage via NServiceBus persistence.
Unicast-only transports include:
- MSMQ
- SQL Server version 4 and below
- Amazon SQS version 4 and below
- Azure Storage Queues version 9 and below
Multicast-enabled transports
Multicast-enabled transports have some notion of topics, exchanges, or similar concepts, which allow sending a message once and having it received by multiple clients. These transports do not require subscription storage.
Multicast-enabled transports include: