Skip to main content

Transports

A transport is an adapter over one native client. Each transport package depends only on its native client and supports only that client's latest major version.

PackageBrokerNative clientStatus
RelayerIn-memory, for tests and samplesBuilt inImplemented
Relayer.KafkaApache KafkaDekaf, a pure C# Kafka clientIn development
Relayer.AzureServiceBusAzure Service BusAzure.Messaging.ServiceBusIn development
Relayer.AmazonSqsAmazon SQS and SNSAWSSDK.SQS and AWSSDK.SimpleNotificationServiceIn development
Relayer.RabbitMQRabbitMQRabbitMQ.ClientIn development

Every transport, including third-party ones, must pass the transport conformance suite: send, receive, settle, retry, dead-letter, delay, ordering, trace propagation and reconnect.

Why Kafka uses Dekaf​

Dekaf has no native dependencies, supports Native AOT and is built for zero-allocation hot paths, which matches Relayer's own goals. Where Dekaf already ships a feature, such as retry topics or OpenTelemetry instrumentation, the Kafka transport reuses it instead of re-implementing it.

Building a transport​

The core is designed so a transport contains native code only. Start with: