Raycynix.Extensions.Messaging.Database
1.0.0
dotnet add package Raycynix.Extensions.Messaging.Database --version 1.0.0
NuGet\Install-Package Raycynix.Extensions.Messaging.Database -Version 1.0.0
<PackageReference Include="Raycynix.Extensions.Messaging.Database" Version="1.0.0" />
<PackageVersion Include="Raycynix.Extensions.Messaging.Database" Version="1.0.0" />
<PackageReference Include="Raycynix.Extensions.Messaging.Database" />
paket add Raycynix.Extensions.Messaging.Database --version 1.0.0
#r "nuget: Raycynix.Extensions.Messaging.Database, 1.0.0"
#:package Raycynix.Extensions.Messaging.Database@1.0.0
#addin nuget:?package=Raycynix.Extensions.Messaging.Database&version=1.0.0
#tool nuget:?package=Raycynix.Extensions.Messaging.Database&version=1.0.0
Raycynix.Extensions.Messaging.Database
Raycynix.Extensions.Messaging.Database adds persistent inbox and outbox storage for Raycynix messaging on top of Raycynix.Extensions.Database.
What it contains
AddDatabasePersistence(...)- persistent
IIncomingMessageInboxStore - persistent
IMessageOutboxStore - EF Core configurators registered into the shared
DatabaseContext - ambient unit-of-work aware outbox persistence for shared
DatabaseContextscopes - optional background retention cleanup for inbox/outbox tables
What it does not contain
- broker-specific Kafka client setup
- broker-specific RabbitMQ client setup
- EF Core entities for your application domain
- cross-resource distributed transactions
Usage
Example appsettings.json:
{
"MessagingDatabasePersistenceConfiguration": {
"InboxTableName": "messaging_inbox",
"OutboxTableName": "messaging_outbox",
"EnableCleanup": true,
"CleanupInterval": "00:05:00",
"CleanupBatchSize": 500,
"ProcessedInboxRetention": "3.00:00:00",
"DispatchedOutboxRetention": "3.00:00:00"
}
}
builder.Services
.AddRaycynixDatabase(builder.Configuration)
.AddPostgreSql();
builder.Services.AddRaycynixMessaging(builder.Configuration)
.AddDatabasePersistence(builder.Configuration);
You can still override specific values in code:
builder.Services.AddRaycynixMessaging(builder.Configuration)
.AddDatabasePersistence(builder.Configuration, options =>
{
options.InboxTableName = "tenant_a_messaging_inbox";
});
The package replaces the default in-memory inbox/outbox stores with database-backed implementations and registers its EF Core configurators into the shared DatabaseContext through AddRaycynixDatabaseAssembly(...). Table creation still flows through the existing Raycynix database initialization pipeline.
Inbox and outbox lease acquisition uses optimistic concurrency through EF Core model metadata, so the package stays provider-agnostic across SQLite, PostgreSQL, SQL Server, and MySQL without introducing provider-specific SQL into the messaging layer.
This package gives messaging persistence that survives process restarts, participates in the ambient shared DatabaseContext unit of work for outbox writes, runs retention cleanup, and works with the existing outbox recovery pipeline. It does not provide distributed transactions, but it does provide durable inbox/outbox state and database-backed recovery and dispatch leasing in the configured relational database.
| 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
- Microsoft.Extensions.Configuration (>= 10.0.5)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection (>= 10.0.5)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.5)
- Raycynix.Extensions.Database (>= 1.0.0)
- Raycynix.Extensions.Messaging (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See the repository changelog and release history for package-specific changes and breaking updates.