Skip to content

Destination Support Matrix

This page provides a comprehensive cross-reference of message brokers and the destinations KETE supports for each.

Quick Reference Matrix

Broker AMQP 0.9.1 AMQP 1.0 MQTT 3 MQTT 5 STOMP Kafka Redis NATS Pulsar HTTP WebSocket ZeroMQ GCP Pub/Sub
RabbitMQ ✅ ✅ 4.0+ ✅ Plugin ✅ Plugin ✅ Plugin ❌ ❌ ❌ ❌ ❌ ✅ Plugin ❌ ❌
LavinMQ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
Redis ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Valkey ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Dragonfly ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
KeyDB ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Microsoft Garnet ❌ ❌ ❌ ❌ ❌ ❌ ✅ Pub/Sub only ❌ ❌ ❌ ❌ ❌ ❌
Amazon ElastiCache ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Azure Cache for Redis ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Google Cloud Memorystore ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
Upstash ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌
ActiveMQ Artemis ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
ActiveMQ Classic ❌ ✅ ✅ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Eclipse Mosquitto ❌ ❌ ✅ ✅ 2.0+ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
HiveMQ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
HiveMQ Cloud ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
EMQX ❌ ❌ ✅ ✅ ✅ Gateway ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
EMQX Cloud ❌ ❌ ✅ ✅ ✅ Gateway ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
NanoMQ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
VerneMQ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌
Apache Qpid ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
IBM MQ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
NATS Server ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌
Synadia Cloud ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌
Apache Pulsar ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
StreamNative Cloud ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
DataStax Astra Streaming ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
DataStax Luna Streaming ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
Azure Service Bus ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌
Azure Event Hubs ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌
Azure Event Grid ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌
Google Cloud Pub/Sub ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅
Apache Kafka ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Amazon MSK ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Redpanda ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Confluent Cloud ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Aiven for Kafka ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Strimzi ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
WarpStream ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Instaclustr ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Solace PubSub+ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌
Apache RocketMQ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
AWS IoT Core ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌
Azure IoT Hub ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌
Any ZeroMQ peer ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌

Brokerless Destination

ZeroMQ is a brokerless messaging library — it connects directly to peers without a message broker. The "Any ZeroMQ peer" row represents any application using a ZeroMQ binding (Python, C, .NET, Java, Node.js, etc.).

WebSocket Column

The WebSocket column indicates that the broker supports WebSocket as a transport layer for its native protocol (e.g., MQTT-over-WebSocket, AMQP-over-WebSocket). This does not mean you use destination.kind=websocket — you use the broker's protocol destination (e.g., mqtt-5, amqp-0.9.1) with the broker's WebSocket endpoint. The KETE websocket destination is for connecting to raw/custom WebSocket servers.

Native SDK Destinations

The following destinations use vendor-specific SDKs and are not shown as columns in the protocol matrix above: azure-eventhubs, azure-servicebus, azure-eventgrid, azure-storage-queue, azure-webpubsub, aws-eventbridge, aws-sqs, aws-sns, aws-kinesis, gcp-cloud-tasks, grpc, signalr, soap, socketio. See the By Destination section for details.

Multi-Protocol Brokers

These brokers support multiple protocols, giving you flexibility in how you connect:

RabbitMQ

RabbitMQ is highly versatile, supporting many protocols via plugins:

Protocol KETE Destination Port Notes
AMQP 0.9.1 amqp-0.9.1 5672 Native protocol
AMQP 1.0 amqp-1 5672 Native in RabbitMQ 4.0+
MQTT 3.1.1 mqtt-3 1883 Via rabbitmq_mqtt plugin
MQTT 5 mqtt-5 1883 Via rabbitmq_mqtt plugin (3.13+)
STOMP stomp 61613 Via rabbitmq_stomp plugin

Quickstarts available: amqp-0.9.1-rabbitmq, amqp-1-rabbitmq, mqtt-3-rabbitmq, mqtt-5-rabbitmq, stomp-rabbitmq

ActiveMQ Artemis

Apache ActiveMQ Artemis is a high-performance multi-protocol broker:

Protocol KETE Destination Port Notes
AMQP 1.0 amqp-1 5672 Native support
MQTT 3.1.1 mqtt-3 1883 Native support
MQTT 5 mqtt-5 1883 Native support
STOMP stomp 61613/61616 Requires anycastPrefix config (see STOMP docs)

Quickstarts available: amqp-1-activemq, mqtt-3-activemq-artemis, mqtt-5-activemq-artemis, stomp-artemis

EMQX

EMQX is a high-performance MQTT broker with multi-protocol gateway support:

Protocol KETE Destination Port Notes
MQTT 3.1.1 mqtt-3 1883 Native support
MQTT 5 mqtt-5 1883 Full MQTT 5 compliance
STOMP stomp 61613 Via STOMP gateway

Quickstarts available: mqtt-3-emqx, mqtt-5-emqx, stomp-emqx

Solace PubSub+

Solace supports multiple open protocols:

Protocol KETE Destination Port Notes
AMQP 1.0 amqp-1 5672 Native support
MQTT 3.1.1 mqtt-3 1883 Native support
MQTT 5 mqtt-5 1883 Native support

Quickstarts available: amqp-1-solace, mqtt-3-solace, mqtt-5-solace

By Destination

AMQP 0.9.1 Brokers

Use destination.kind=amqp-0.9.1:

  • RabbitMQ - Primary target
  • LavinMQ - Lightweight alternative
  • CloudAMQP - Managed RabbitMQ
  • Amazon MQ for RabbitMQ - AWS managed

Quickstarts available: amqp-0.9.1-rabbitmq, amqp-0.9.1-lavinmq, amqp-0.9.1-amazon-mq, amqp-0.9.1-cloudamqp

See: AMQP 0.9.1 Destination

AMQP 1.0 Brokers

Use destination.kind=amqp-1:

  • Apache ActiveMQ Artemis - Primary target
  • RabbitMQ 4.0+ - Native AMQP 1.0 support
  • Azure Service Bus - TLS required
  • Azure Event Hubs - Event streaming
  • Apache Qpid - Reference implementation
  • Amazon MQ - Managed ActiveMQ
  • Solace PubSub+ - Multi-protocol

Quickstarts available: amqp-1-activemq, amqp-1-azure-event-hubs, amqp-1-azure-event-hubs-emulator, amqp-1-azure-service-bus, amqp-1-azure-service-bus-emulator, amqp-1-qpid, amqp-1-rabbitmq, amqp-1-amazon-mq, amqp-1-solace

See: AMQP 1 Destination

MQTT 3.1.1 Brokers

Use destination.kind=mqtt-3:

  • Eclipse Mosquitto - Most popular open-source
  • HiveMQ - Enterprise, clustering
  • EMQX - High-performance
  • VerneMQ - Distributed
  • NanoMQ - Lightweight
  • RabbitMQ - Via plugin
  • ActiveMQ Artemis - Multi-protocol broker
  • Azure Event Grid - MQTT Broker feature
  • Solace PubSub+ - Native
  • Apache RocketMQ - Via rocketmq-mqtt gateway
  • AWS IoT Core - Managed
  • Azure IoT Hub - Managed

Quickstarts available: mqtt-3-mosquitto, mqtt-3-emqx, mqtt-3-hivemq, mqtt-3-vernemq, mqtt-3-nanomq, mqtt-3-rabbitmq, mqtt-3-activemq-artemis, mqtt-3-solace

See: MQTT 3 Destination

MQTT 5 Brokers

Use destination.kind=mqtt-5:

  • HiveMQ - Full MQTT 5
  • EMQX - Full MQTT 5
  • Eclipse Mosquitto 2.0+ - MQTT 5 since v2.0
  • VerneMQ - Full MQTT 5
  • NanoMQ - Lightweight
  • RabbitMQ - Via plugin (3.13+)
  • ActiveMQ Artemis - Multi-protocol broker (v2.28+)
  • Azure Event Grid - MQTT Broker
  • Solace PubSub+ - Native

Quickstarts available: mqtt-5-mosquitto, mqtt-5-emqx, mqtt-5-hivemq, mqtt-5-vernemq, mqtt-5-nanomq, mqtt-5-rabbitmq, mqtt-5-azure-event-grid, mqtt-5-activemq-artemis, mqtt-5-solace

See: MQTT 5 Destination

STOMP Brokers

Use destination.kind=stomp:

  • ActiveMQ Classic - Native, widely deployed
  • ActiveMQ Artemis - Native
  • RabbitMQ - Via plugin
  • EMQX - Via gateway
  • Amazon MQ - Managed ActiveMQ
  • TIBCO EMS - Native

Quickstarts available: stomp-activemq, stomp-artemis, stomp-rabbitmq, stomp-emqx, stomp-amazon-mq

See: STOMP Destination

Kafka-Compatible Systems

Use destination.kind=kafka:

  • Apache Kafka - Reference implementation
  • Redpanda - Kafka-compatible
  • Confluent Cloud - Managed Kafka
  • Azure Event Hubs - Kafka protocol support
  • Amazon MSK - Managed Kafka
  • Aiven for Kafka - Managed
  • Strimzi - Kubernetes Kafka operator
  • WarpStream - Zero-disk Kafka
  • Instaclustr - Multi-cloud managed Kafka

Quickstarts available: kafka-apache, kafka-redpanda, kafka-confluent, kafka-azure-event-hubs, kafka-azure-event-hubs-emulator, kafka-amazon-msk

See: Kafka Destination

Redis-Compatible Systems

Use destination.kind=redis-pubsub or destination.kind=redis-stream:

  • Redis - Open-source, in-memory data store
  • Redis Stack - Redis with additional modules
  • Valkey - Redis fork, fully compatible
  • Dragonfly - Redis-compatible, multi-threaded
  • KeyDB - Redis-compatible, multi-threaded
  • Microsoft Garnet - Redis-compatible, .NET-based (Pub/Sub only, no Streams)
  • Amazon ElastiCache - AWS-managed Redis
  • Azure Cache for Redis - Azure-managed Redis
  • Google Cloud Memorystore - GCP-managed Redis
  • Upstash - Serverless Redis

Quickstarts available (Pub/Sub): redis-pubsub-redis, redis-pubsub-valkey, redis-pubsub-dragonfly, redis-pubsub-keydb, redis-pubsub-garnet, redis-pubsub-azure-cache-for-redis, redis-pubsub-upstash, redis-pubsub-amazon-elasticache, redis-pubsub-google-memorystore

Quickstarts available (Streams): redis-stream-redis, redis-stream-valkey, redis-stream-dragonfly, redis-stream-keydb, redis-stream-azure-cache-for-redis, redis-stream-upstash, redis-stream-amazon-elasticache, redis-stream-google-memorystore

Microsoft Garnet

Garnet supports Redis Pub/Sub but does not support Redis Streams (XADD). See github.com/microsoft/garnet/issues/64.

See: Redis Pub/Sub Destination, Redis Stream Destination

NATS-Compatible Systems

Use destination.kind=nats or destination.kind=nats-jetstream:

  • NATS Server - Open-source messaging system
  • Synadia Cloud - Managed NATS service
  • NATS Kubernetes - Self-hosted NATS on Kubernetes

Quickstarts available: nats-nats-server, nats-jetstream-nats-server, nats-synadia-cloud, nats-jetstream-synadia-cloud

See: NATS Destination, NATS JetStream Destination

Pulsar-Compatible Systems

Use destination.kind=pulsar:

  • Apache Pulsar — Cloud-native, distributed messaging and streaming platform
  • StreamNative Cloud — Managed Pulsar service
  • DataStax Astra Streaming — Managed Pulsar service
  • DataStax Luna Streaming — Self-managed Pulsar distribution

Quickstarts available: pulsar-apache, pulsar-datastax

See: Pulsar Destination

ZeroMQ Peers

Use destination.kind=zeromq:

ZeroMQ is brokerless — no broker to deploy or manage. KETE connects directly to ZeroMQ peers.

  • Any ZeroMQ application — 40+ language bindings (Python, C, .NET, Java, Node.js, Go, Rust, etc.)
  • PUB/SUB pattern — Fan-out to all subscribers
  • PUSH/PULL pattern — Round-robin distribution to workers

Quickstarts available: zeromq-publish, zeromq-push

See: ZeroMQ Destination

GCP Pub/Sub

Use destination.kind=gcp-pubsub:

  • Google Cloud Pub/Sub — Fully managed, global messaging service
  • GCP Pub/Sub Emulator — Local development and testing

Quickstarts available: gcp-pubsub, gcp-pubsub-emulator

See: GCP Pub/Sub Destination

Azure Storage Queue

Use destination.kind=azure-storage-queue:

  • Azure Storage Queue — Simple, cost-effective cloud message queue
  • Azurite Emulator — Local development and testing

Quickstarts available: azure-storage-queue, azure-storage-queue-emulator

See: Azure Storage Queue Destination

AWS EventBridge

Use destination.kind=aws-eventbridge:

  • Amazon EventBridge — Serverless event bus for AWS services and SaaS integrations
  • LocalStack — Local development and testing

Quickstarts available: aws-eventbridge-emulator, aws-eventbridge

See: AWS EventBridge Destination

AWS SQS

Use destination.kind=aws-sqs:

  • Amazon SQS — Fully managed message queue service
  • LocalStack — Local development and testing

Quickstarts available: aws-sqs-emulator, aws-sqs

See: AWS SQS Destination

AWS SNS

Use destination.kind=aws-sns:

  • Amazon SNS — Fully managed pub/sub messaging service
  • LocalStack — Local development and testing

Quickstarts available: aws-sns-emulator, aws-sns

See: AWS SNS Destination

AWS Kinesis

Use destination.kind=aws-kinesis:

  • Amazon Kinesis Data Streams — Real-time data streaming service
  • LocalStack — Local development and testing

Quickstarts available: aws-kinesis-emulator, aws-kinesis

See: AWS Kinesis Destination

Azure Event Grid

Use destination.kind=azure-eventgrid (native SDK) or protocol-based destinations:

  • Azure Event Grid — Fully managed event routing service

The native azure-eventgrid destination uses the Azure Event Grid SDK and supports access key, Managed Identity, and Default Azure Credential authentication. Alternatively, use mqtt-5 for the Event Grid MQTT broker.

Quickstarts available (native): azure-eventgrid

Quickstarts available (via MQTT 5): mqtt-5-azure-event-grid

See: Azure Event Grid Destination, HTTP Destination, MQTT 5 Destination

Azure Event Hubs

Use destination.kind=azure-eventhubs (native SDK) or protocol-based destinations:

  • Azure Event Hubs — Fully managed event streaming service
  • Azure Event Hubs Emulator — Local development and testing

The native azure-eventhubs destination uses the Azure Event Hubs SDK and supports connection string, Managed Identity, and Default Azure Credential authentication. Alternatively, use kafka or amqp-1 for protocol-based access.

Quickstarts available (via Kafka): kafka-azure-event-hubs, kafka-azure-event-hubs-emulator

Quickstarts available (via AMQP 1.0): amqp-1-azure-event-hubs, amqp-1-azure-event-hubs-emulator

See: Azure Event Hubs Destination, Kafka Destination, AMQP 1 Destination

Azure Service Bus

Use destination.kind=azure-servicebus (native SDK) or protocol-based destinations:

  • Azure Service Bus — Fully managed enterprise message broker
  • Azure Service Bus Emulator — Local development and testing

The native azure-servicebus destination uses the Azure Service Bus SDK and supports connection string, Managed Identity, and Default Azure Credential authentication. Alternatively, use amqp-1 for protocol-based access.

Quickstarts available (via AMQP 1.0): amqp-1-azure-service-bus, amqp-1-azure-service-bus-emulator

See: Azure Service Bus Destination, AMQP 1 Destination

Azure Web PubSub

Use destination.kind=azure-webpubsub:

  • Azure Web PubSub — Real-time messaging service for WebSocket clients

Quickstarts available: azure-webpubsub, azure-webpubsub-emulator

See: Azure Web PubSub Destination

GCP Cloud Tasks

Use destination.kind=gcp-cloud-tasks:

  • Google Cloud Tasks — Managed task queue for asynchronous HTTP request dispatch

Quickstarts available: gcp-cloud-tasks, gcp-cloud-tasks-emulator

See: GCP Cloud Tasks Destination

gRPC Servers

Use destination.kind=grpc:

  • Any gRPC server — Sends serialized events as the request body via unary RPC

Quickstarts available: grpc

See: gRPC Destination

HTTP Endpoints

Use destination.kind=http:

  • Webhooks — POST events to any HTTP/HTTPS endpoint
  • REST APIs — Forward events to REST services

Quickstarts available: http-webhook

See: HTTP Destination

WebSocket Servers

Use destination.kind=websocket:

  • Custom WebSocket servers — Real-time servers, dashboards, backends

Quickstarts available: websocket-echo

See: WebSocket Destination

SignalR Hubs

Use destination.kind=signalr:

  • ASP.NET Core SignalR — Self-hosted SignalR hubs
  • Azure SignalR Service — Managed real-time messaging

Quickstarts available: signalr

See: SignalR Destination

SOAP Endpoints

Use destination.kind=soap:

  • Any SOAP endpoint — Sends serialized events wrapped in a SOAP envelope (1.1 or 1.2)

Quickstarts available: soap-webhook

See: SOAP Destination

Socket.IO Servers

Use destination.kind=socketio:

  • Socket.IO v3/v4 servers — Node.js, Python, Java implementations
  • Any Engine.IO-compatible server — as supported by the bundled socket.io-client-java (Engine.IO v4 / Socket.IO v3+ servers)

Quickstarts available: socketio

See: Socket.IO Destination

Choosing the Right Protocol

Decision Guide

Is your broker RabbitMQ or LavinMQ?
├── Yes → Use amqp-0.9.1 (native protocol, best performance)
└── No → Continue...

Is your broker Kafka, Redpanda, or Event Hubs (Kafka mode)?
├── Yes → Use kafka
└── No → Continue...

Is your broker Redis, ElastiCache, Azure Cache for Redis, Dragonfly, KeyDB, or Upstash?
├── Yes → Do you need message persistence?
│   ├── Yes → Use redis-stream (persistent, consumer groups, headers)
│   └── No → Use redis-pubsub (fire-and-forget, lower latency)
└── No → Continue...

Is your broker NATS Server or Synadia Cloud?
├── Yes → Do you need message persistence?
│   ├── Yes → Use nats-jetstream (persistent, acknowledgments)
│   └── No → Use nats (fire-and-forget, lowest latency)
└── No → Continue...

Is your broker Apache Pulsar, StreamNative, or DataStax?
├── Yes → Use pulsar
└── No → Continue...

Is your broker ActiveMQ Artemis, Azure Service Bus, or Qpid?
├── Yes → Use amqp-1
└── No → Continue...

Is your broker an MQTT broker (Mosquitto, HiveMQ, EMQX, VerneMQ)?
├── Yes → Does it support MQTT 5?
│   ├── Yes → Use mqtt-5 (for user properties/headers)
│   └── No → Use mqtt-3
└── No → Continue...

Is your broker ActiveMQ Classic or needs STOMP?
├── Yes → Use stomp
└── No → Continue...

Is it a REST API, webhook, or HTTP endpoint?
├── Yes → Use http
└── No → Continue...

Do you need brokerless peer-to-peer messaging?
├── Yes → Use zeromq (no broker, direct peer connection)
└── No → Continue...

Is it Google Cloud Pub/Sub?
├── Yes → Use gcp-pubsub
└── No → Continue...

Is it Azure Storage Queue?
├── Yes → Use azure-storage-queue
└── No → Continue...

Is it Azure Event Hubs?
├── Yes → Do you need Managed Identity or Default Azure Credential?
│   ├── Yes → Use azure-eventhubs (native SDK)
│   └── No → Use kafka (Kafka protocol) or amqp-1 (AMQP 1.0) or azure-eventhubs
└── No → Continue...

Is it Azure Service Bus?
├── Yes → Do you need Managed Identity or Default Azure Credential?
│   ├── Yes → Use azure-servicebus (native SDK)
│   └── No → Use amqp-1 (AMQP 1.0) or azure-servicebus
└── No → Continue...

Is it Azure Event Grid?
├── Yes → Do you need Managed Identity or native Event Grid events?
│   ├── Yes → Use azure-eventgrid (native SDK)
│   └── No → Use http (HTTP push) or mqtt-5 (MQTT broker feature)
└── No → Continue...

Is it Amazon EventBridge?
├── Yes → Use aws-eventbridge
└── No → Continue...

Is it Amazon SQS?
├── Yes → Use aws-sqs
└── No → Continue...

Is it Amazon SNS?
├── Yes → Use aws-sns
└── No → Continue...

Is it Amazon Kinesis Data Streams?
├── Yes → Use aws-kinesis
└── No → Continue...

Is it Azure Web PubSub?
├── Yes → Use azure-webpubsub
└── No → Continue...

Is it Google Cloud Tasks?
├── Yes → Use gcp-cloud-tasks
└── No → Continue...

Is it a gRPC server?
├── Yes → Use grpc (unary RPC, identity marshaller)
└── No → Continue...

Is it a SOAP endpoint?
├── Yes → Use soap (SOAP 1.1/1.2 envelope)
└── No → Continue...

Is it an ASP.NET SignalR hub or Azure SignalR Service?
├── Yes → Use signalr (native SignalR protocol)
└── No → Continue...

Is it a Socket.IO server?
├── Yes → Use socketio (Engine.IO protocol)
└── No → Use websocket for generic WebSocket servers

Performance Considerations

Protocol Throughput Latency Best For
kafka ⭐⭐⭐⭐⭐ ⭐⭐⭐ High-volume event streaming
pulsar ⭐⭐⭐⭐⭐ ⭐⭐⭐ Multi-tenancy, geo-replication
nats-jetstream ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ Persistent messaging with acknowledgments
nats ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Fire-and-forget, ultra-low latency
redis-stream ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Persistent messaging, consumer groups
redis-pubsub ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Fire-and-forget, lowest latency
amqp-0.9.1 ⭐⭐⭐⭐ ⭐⭐⭐⭐ RabbitMQ workloads
amqp-1 ⭐⭐⭐⭐ ⭐⭐⭐⭐ Enterprise messaging
mqtt-5 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ IoT, lightweight clients
mqtt-3 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ IoT, legacy support
stomp ⭐⭐⭐ ⭐⭐⭐ Text-based, debugging
http ⭐⭐ ⭐⭐ Webhooks, integrations
zeromq ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Brokerless, peer-to-peer, ultra-low latency
gcp-pubsub ⭐⭐⭐⭐ ⭐⭐⭐ Google Cloud managed messaging
azure-storage-queue ⭐⭐⭐ ⭐⭐⭐ Simple Azure cloud queue messaging
aws-eventbridge ⭐⭐⭐ ⭐⭐⭐ AWS serverless event routing
aws-sqs ⭐⭐⭐ ⭐⭐⭐ AWS managed message queuing
aws-sns ⭐⭐⭐ ⭐⭐⭐ AWS managed pub/sub messaging
aws-kinesis ⭐⭐⭐⭐ ⭐⭐⭐ AWS real-time data streaming
azure-webpubsub ⭐⭐⭐ ⭐⭐⭐⭐ Real-time WebSocket messaging via Azure
azure-eventhubs ⭐⭐⭐⭐ ⭐⭐⭐ Azure Event Hubs native SDK (AMQP), Managed Identity
azure-servicebus ⭐⭐⭐⭐ ⭐⭐⭐ Azure Service Bus native SDK (AMQP), Managed Identity
azure-eventgrid ⭐⭐⭐ ⭐⭐⭐ Azure Event Grid native SDK, Managed Identity
gcp-cloud-tasks ⭐⭐⭐ ⭐⭐⭐ Asynchronous HTTP task dispatch
grpc ⭐⭐⭐⭐ ⭐⭐⭐⭐ gRPC unary RPC, HTTP/2, service mesh
soap ⭐⭐ ⭐⭐ SOAP endpoints, legacy enterprise services
signalr ⭐⭐⭐ ⭐⭐⭐⭐ ASP.NET SignalR hubs, Azure SignalR Service
socketio ⭐⭐⭐ ⭐⭐⭐⭐ Socket.IO real-time servers
websocket ⭐⭐⭐ ⭐⭐⭐⭐ Real-time dashboards

Available Quickstarts

All quickstarts are in the quick-starts/ directory:

Protocol Broker Quickstart Folder
AMQP 0.9.1 RabbitMQ amqp-0.9.1-rabbitmq/
AMQP 0.9.1 LavinMQ amqp-0.9.1-lavinmq/
AMQP 0.9.1 Amazon MQ (RabbitMQ) amqp-0.9.1-amazon-mq/
AMQP 0.9.1 CloudAMQP amqp-0.9.1-cloudamqp/
AMQP 1.0 ActiveMQ amqp-1-activemq/
AMQP 1.0 Azure Event Hubs amqp-1-azure-event-hubs/
AMQP 1.0 Azure Event Hubs Emulator amqp-1-azure-event-hubs-emulator/
AMQP 1.0 Azure Service Bus amqp-1-azure-service-bus/
AMQP 1.0 Azure Service Bus Emulator amqp-1-azure-service-bus-emulator/
AMQP 1.0 Apache Qpid amqp-1-qpid/
AMQP 1.0 RabbitMQ amqp-1-rabbitmq/
AMQP 1.0 Amazon MQ (ActiveMQ) amqp-1-amazon-mq/
AMQP 1.0 Solace PubSub+ amqp-1-solace/
MQTT 3 Mosquitto mqtt-3-mosquitto/
MQTT 3 EMQX mqtt-3-emqx/
MQTT 3 RabbitMQ mqtt-3-rabbitmq/
MQTT 3 HiveMQ mqtt-3-hivemq/
MQTT 3 VerneMQ mqtt-3-vernemq/
MQTT 3 NanoMQ mqtt-3-nanomq/
MQTT 3 ActiveMQ Artemis mqtt-3-activemq-artemis/
MQTT 3 Solace mqtt-3-solace/
MQTT 5 Mosquitto mqtt-5-mosquitto/
MQTT 5 EMQX mqtt-5-emqx/
MQTT 5 HiveMQ mqtt-5-hivemq/
MQTT 5 Azure Event Grid mqtt-5-azure-event-grid/
MQTT 5 RabbitMQ mqtt-5-rabbitmq/
MQTT 5 VerneMQ mqtt-5-vernemq/
MQTT 5 NanoMQ mqtt-5-nanomq/
MQTT 5 ActiveMQ Artemis mqtt-5-activemq-artemis/
MQTT 5 Solace mqtt-5-solace/
STOMP ActiveMQ stomp-activemq/
STOMP Artemis stomp-artemis/
STOMP RabbitMQ stomp-rabbitmq/
STOMP EMQX stomp-emqx/
STOMP Amazon MQ (ActiveMQ) stomp-amazon-mq/
Kafka Apache Kafka kafka-apache/
Kafka Azure Event Hubs kafka-azure-event-hubs/
Kafka Azure Event Hubs Emulator kafka-azure-event-hubs-emulator/
Kafka Redpanda kafka-redpanda/
Kafka Confluent kafka-confluent/
Kafka Amazon MSK kafka-amazon-msk/
Redis Pub/Sub Redis redis-pubsub-redis/
Redis Pub/Sub Valkey redis-pubsub-valkey/
Redis Pub/Sub Dragonfly redis-pubsub-dragonfly/
Redis Pub/Sub KeyDB redis-pubsub-keydb/
Redis Pub/Sub Microsoft Garnet redis-pubsub-garnet/
Redis Pub/Sub Azure Cache for Redis redis-pubsub-azure-cache-for-redis/
Redis Pub/Sub Upstash redis-pubsub-upstash/
Redis Pub/Sub Amazon ElastiCache redis-pubsub-amazon-elasticache/
Redis Pub/Sub Google Memorystore redis-pubsub-google-memorystore/
Redis Stream Redis redis-stream-redis/
Redis Stream Valkey redis-stream-valkey/
Redis Stream Dragonfly redis-stream-dragonfly/
Redis Stream KeyDB redis-stream-keydb/
Redis Stream Azure Cache for Redis redis-stream-azure-cache-for-redis/
Redis Stream Upstash redis-stream-upstash/
Redis Stream Amazon ElastiCache redis-stream-amazon-elasticache/
Redis Stream Google Memorystore redis-stream-google-memorystore/
NATS NATS Server nats-nats-server/
NATS JetStream NATS Server nats-jetstream-nats-server/
NATS Synadia Cloud nats-synadia-cloud/
NATS JetStream Synadia Cloud nats-jetstream-synadia-cloud/
Pulsar Apache Pulsar pulsar-apache/
Pulsar DataStax Astra Streaming pulsar-datastax/
Azure Event Grid Azure Event Grid azure-eventgrid/
HTTP Webhook http-webhook/
WebSocket Echo Server websocket-echo/
ZeroMQ PUB/SUB zeromq-publish/
ZeroMQ PUSH/PULL zeromq-push/
GCP Pub/Sub GCP Pub/Sub Emulator gcp-pubsub-emulator/
GCP Pub/Sub Google Cloud Pub/Sub gcp-pubsub/
Azure Storage Queue Azure (Cloud) azure-storage-queue/
Azure Storage Queue Azurite Emulator azure-storage-queue-emulator/
AWS EventBridge LocalStack Emulator aws-eventbridge-emulator/
AWS EventBridge Amazon EventBridge aws-eventbridge/
AWS SQS LocalStack Emulator aws-sqs-emulator/
AWS SQS Amazon SQS aws-sqs/
AWS SNS LocalStack Emulator aws-sns-emulator/
AWS SNS Amazon SNS aws-sns/
AWS Kinesis LocalStack Emulator aws-kinesis-emulator/
AWS Kinesis Amazon Kinesis aws-kinesis/
Azure Web PubSub Azure (Cloud) azure-webpubsub/
Azure Web PubSub Mock Server (Local) azure-webpubsub-emulator/
GCP Cloud Tasks Google Cloud Tasks gcp-cloud-tasks/
GCP Cloud Tasks Local Emulator gcp-cloud-tasks-emulator/
gRPC Echo Server grpc/
SOAP Webhook soap-webhook/
SignalR ASP.NET Core Echo signalr/
Socket.IO Node.js Echo socketio/