Raycynix.Extensions.Messaging.Database
2.2.0
dotnet add package Raycynix.Extensions.Messaging.Database --version 2.2.0
NuGet\Install-Package Raycynix.Extensions.Messaging.Database -Version 2.2.0
<PackageReference Include="Raycynix.Extensions.Messaging.Database" Version="2.2.0" />
<PackageVersion Include="Raycynix.Extensions.Messaging.Database" Version="2.2.0" />
<PackageReference Include="Raycynix.Extensions.Messaging.Database" />
paket add Raycynix.Extensions.Messaging.Database --version 2.2.0
#r "nuget: Raycynix.Extensions.Messaging.Database, 2.2.0"
#:package Raycynix.Extensions.Messaging.Database@2.2.0
#addin nuget:?package=Raycynix.Extensions.Messaging.Database&version=2.2.0
#tool nuget:?package=Raycynix.Extensions.Messaging.Database&version=2.2.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
- optional Microsoft
ILogger<T>diagnostics for persistence, leases, and cleanup
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.
Logging
The database persistence package uses optional Microsoft ILogger<T> diagnostics when logging is registered in the application. No Raycynix logging provider is required.
Diagnostics cover inbox/outbox status transitions, lease acquisition decisions, optimistic concurrency outcomes, and cleanup counts. Payloads, serialized headers, header values, and database connection details are not logged.
| 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.Logging.Abstractions (>= 10.0.9)
- Raycynix.Extensions.Database (>= 2.2.0)
- Raycynix.Extensions.Messaging (>= 2.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Starts unified versioning for Raycynix packages from this release and adds optional Microsoft.Extensions.Logging diagnostics for messaging persistence.