KubeMQ
IntegrationsMassTransit

MassTransit

Run MassTransit .NET apps over KubeMQ — a drop-in transport mapping Send, Publish, and request/response to native Queues, Events, EventsStore, and CQ.

MassTransit is the open-source distributed-application framework for .NET. MassTransit.KubeMQ is a MassTransit transport that runs the bus over KubeMQ via gRPC: you register it the same way you would RabbitMQ or Azure Service Bus, and your existing consumers, sagas, and message contracts work unchanged on KubeMQ.

Because the transport plugs in below the MassTransit abstractions, adopting KubeMQ is a configuration change rather than a rewrite. Message contracts, IConsumer<T> implementations, sagas, the middleware pipeline, serialization, retry/redelivery policies, the EF Core outbox, OpenTelemetry, and DI registration (AddConsumer<T>, AddSaga<T>) all behave identically — only where messages physically travel changes.

New to the idea? See what is an integration for how SDK-level integrations differ from the server-side connectors.

Why MassTransit + KubeMQ

  • Drop-in transport swap — change UsingRabbitMq, UsingAzureServiceBus, or UsingAmazonSqs to UsingKubeMQ; contracts and consumers stay the same.
  • Native request/response — KubeMQ's CQ pattern provides built-in request-reply with no temporary reply queues (unlike RabbitMQ/SQS, which simulate it).
  • Fire-and-forget or durable-replayable publishPublish<T>() maps to KubeMQ Events for fan-out, or to EventsStore for persistent, replayable pub/sub.
  • Built-in priority queues and consumer groups — weighted priority channels and competing consumers without extra infrastructure.
  • Full observability — W3C trace context is propagated via tags, and the bus integrates with ASP.NET Core health checks and a MassTransit.KubeMQ metrics meter.

Install

terminal
dotnet add package MassTransit.KubeMQ

The transport targets net8.0 and requires MassTransit >= 8.5.0.

Supported versions

RequirementSupported versions
LanguageC# / .NET (net8.0 target)
Runtime.NET SDK 8.0+
MassTransit>= 8.5.0
KubeMQ brokerReachable over native gRPC on port 50000
PackageMassTransit.KubeMQ 1.0.0

The transport is a native gRPC client that connects to KubeMQ on port 50000. It is not an HTTP connector, so there is no CONNECTORS*_ENABLE flag to set — exposing the gRPC port is all that is needed. KubeMQ channels are created automatically on first use; there is no exchange, binding, virtual host, or topic-subscription topology to provision.

Architecture

Your application talks to MassTransit abstractions as usual. The transport layers KubeMQ onto an InMemory base bus (for the IBusControl lifecycle) plus a KubeMQ rider that owns the connections and receive transports. The rider bridges those abstractions to the broker over gRPC on port 50000, where KubeMQ dispatches to its four native subsystems.

The KubeMQ rider maps MassTransit's transport-agnostic operations onto native KubeMQ Queues, Events, EventsStore, and CQ over gRPC.

Pattern mapping

MassTransit's transport-agnostic verbs map to KubeMQ's native messaging patterns. The mapping determines delivery semantics and which KubeMQ subsystem backs each message.

MassTransit verbKubeMQ patternDeliveryCapability page
SendQueuesPoint-to-point (exactly one consumer)Queues
PublishEventsFan-out (all active subscribers, fire-and-forget)Events
Publish (durable)EventsStoreFan-out with persistence and replayEvents Store
Request/ResponseCommands/Queries (CQ)Native request-replyCommands & Queries

Capabilities

Next steps

New to KubeMQ? Start with the KubeMQ Getting Started guide for the core messaging concepts.

Was this page helpful?

On this page