Tessellate.Messaging.RabbitMq
1.0.45-preview
dotnet add package Tessellate.Messaging.RabbitMq --version 1.0.45-preview
NuGet\Install-Package Tessellate.Messaging.RabbitMq -Version 1.0.45-preview
<PackageReference Include="Tessellate.Messaging.RabbitMq" Version="1.0.45-preview" />
<PackageVersion Include="Tessellate.Messaging.RabbitMq" Version="1.0.45-preview" />
<PackageReference Include="Tessellate.Messaging.RabbitMq" />
paket add Tessellate.Messaging.RabbitMq --version 1.0.45-preview
#r "nuget: Tessellate.Messaging.RabbitMq, 1.0.45-preview"
#:package Tessellate.Messaging.RabbitMq@1.0.45-preview
#addin nuget:?package=Tessellate.Messaging.RabbitMq&version=1.0.45-preview&prerelease
#tool nuget:?package=Tessellate.Messaging.RabbitMq&version=1.0.45-preview&prerelease
Tessellate.Messaging.RabbitMq
RabbitMQ provider for the Tessellate microservice framework. Implements IPublisher and the consumer subscription pipeline over AMQP using the RabbitMQ .NET client.
Installation
dotnet add package Tessellate
dotnet add package Tessellate.Messaging.RabbitMq
Setup
Add RabbitMqModule when bootstrapping your service:
await TessellateService<MyService>
.Initialise()
.WithModule<RabbitMqModule>()
.Run();
Configuration
| Key | Default | Description |
|---|---|---|
RabbitMq:Host |
localhost |
RabbitMQ hostname |
RabbitMq:Port |
5672 |
AMQP port |
RabbitMq:Username |
guest |
Username |
RabbitMq:Password |
guest |
Password |
RabbitMq:VirtualHost |
/ |
Virtual host |
RabbitMq:MaxConcurrentConsumers |
10 |
Max parallel message handlers |
RabbitMq:PublishConfirmTimeoutSeconds |
5 |
Publisher confirm timeout |
Tessellate:ServiceName |
unknown |
Used as the queue name for this service |
Set these in appsettings.json or environment variables (use __ as the hierarchy separator for env vars, e.g. RabbitMq__Host).
Topology
- Each service gets one queue named after
Tessellate:ServiceName - Each message type gets one exchange named after its full .NET type name (including namespace), ensuring different services can define messages of the same class name without collision
- Exchanges and queues are created automatically on startup; exchanges that no longer have a corresponding consumer are torn down
Transactional outbox
Publishing with PublishOptions.PublishEventually (the default) adds messages to an in-memory outbox. They are only sent after the consumer's Consume method returns without throwing — giving you Unit of Work semantics at no extra cost.
// Sent only if Consume() completes successfully
await publisher.Publish(new OrderPlaced(order.Id));
// Sent immediately, regardless of consumer outcome
await publisher.PublishAndWait(new OrderPlaced(order.Id));
Retries and dead-lettering
Failed messages are automatically re-queued with exponential backoff. If a message exceeds the maximum retry count it is moved to a dead-letter queue for inspection.
Request/response
var result = await publisher.Request<ValidateOrder, ValidationResult>(
new ValidateOrder(orderId),
timeout: TimeSpan.FromSeconds(10));
The framework creates a transient reply queue, correlates the response, and cleans up automatically.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- RabbitMQ.Client (>= 6.8.1)
- Tessellate.Foundations (>= 1.0.45-preview)
- Tessellate.Messaging (>= 1.0.45-preview)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Tessellate.Messaging.RabbitMq:
| Package | Downloads |
|---|---|
|
Tessellate.Messaging.LavinMq
LavinMQ messaging provider for the Tessellate microservice framework. |
|
|
Tessellate.Messaging.CloudAmqp
CloudAMQP (managed RabbitMQ) messaging provider for the Tessellate microservice framework. |
|
|
Tessellate.Messaging.AmazonMq
Amazon MQ (RabbitMQ engine) messaging provider for the Tessellate microservice framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.45-preview | 72 | 10/14/2026 |
| 1.0.44-preview | 73 | 10/14/2026 |
| 1.0.43-preview | 61 | 10/14/2026 |
| 1.0.42-preview | 69 | 10/14/2026 |