JasperFx 0.9.14


Next

TCP Transport

Previous

Configuring the Service Bus

Messaging Transports Edit on GitHub


A transport is a queueing or communication mechanism that Jasper knows how to use to both deliver and receive messages to and from other systems. In usage, you generally supply a Uri to the message routing, subscription, or listening configuration that the matching transport can interpret. For example, the TCP Transport accepts Uri's like tcp://remoteserver:2200 that is interpreted by Jasper as:

  1. Using the built in, TCP transport...
  2. Send messages to the DNS entry for remoteserver...
  3. Using port 2200 at the remote server (or docker image or VM or load balancer or whatever)

Jasper comes out of the box with these transports:

There is also an addon for a RabbitMQ Transport based on RabbitMQ.

Additional transports based on Azure Service Bus and possibly Kafka are part of the Jasper roadmap.

It is important to note that all of the transport types can be used in either a lightweight fire and forget with limited retries, or with durable, store and forward messaging or guaranteed delivery. For durable messaging.

See also:

Disable All Transports

You might very well want to start up a Jasper application with all of the transports disabled. Maybe it's for testing scenarios where the necessary transport infrastructure isn't in place or you want a faster bootstrap time. Regardless, it's simply this syntax:


public class TransportsAreDisabled : JasperRegistry
{
    public TransportsAreDisabled()
    {
        Settings.Messaging(_ => _.DisableAllTransports = true);
    }
}

Disable Selected Transports

If you want to selectively disable some of the built in transport types, you can use this syntax:


public class DisableOrEnableTransports : JasperRegistry
{
    public DisableOrEnableTransports()
    {
        // TCP transport is enabled by default
        Transports.DisableTransport("tcp");
    }
}

A couple notes first though:

  • The tcp transport is enabled by default
  • Disabling a transport prevents Jasper from creating either outgoing channels or listeners for that transport