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.