Skip to content

RabbitMQ Provider

ServiceBus.Core currently provides a RabbitMQ implementation through two packages:

Package RabbitMQ Client
ServiceBus.Core.Rabbit RabbitMQ.Client v6
ServiceBus.Core.Rabbit.V7 RabbitMQ.Client v7

Both implementations expose the same conceptual model while adapting to the differences between RabbitMQ client versions.

Architecture

graph TD

    Application

    Core["ServiceBus.Core"]

    Rabbit["ServiceBus.Core.Rabbit"]

    Broker["RabbitMQ"]

    Application --> Core

    Core --> Rabbit

    Rabbit --> Broker

Responsibilities

The RabbitMQ provider is responsible for:

  • topology creation;
  • exchange management;
  • queue management;
  • binding management;
  • message publishing;
  • message consumption;
  • retry handling;
  • delivery confirmations.

Version Support

RabbitMQ.Client v6

Uses:

IModel

as the primary channel abstraction.

RabbitMQ.Client v7

Uses:

IChannel

as the primary channel abstraction.

The framework provides equivalent functionality across both implementations.