![]() |
VOOZH | about |
dotnet add package Raycynix.Extensions.Messaging.Database --version 2.0.0
NuGet\Install-Package Raycynix.Extensions.Messaging.Database -Version 2.0.0
<PackageReference Include="Raycynix.Extensions.Messaging.Database" Version="2.0.0" />
<PackageVersion Include="Raycynix.Extensions.Messaging.Database" Version="2.0.0" />Directory.Packages.props
<PackageReference Include="Raycynix.Extensions.Messaging.Database" />Project file
paket add Raycynix.Extensions.Messaging.Database --version 2.0.0
#r "nuget: Raycynix.Extensions.Messaging.Database, 2.0.0"
#:package Raycynix.Extensions.Messaging.Database@2.0.0
#addin nuget:?package=Raycynix.Extensions.Messaging.Database&version=2.0.0Install as a Cake Addin
#tool nuget:?package=Raycynix.Extensions.Messaging.Database&version=2.0.0Install as a Cake Tool
Raycynix.Extensions.Messaging.Database adds persistent inbox and outbox storage for Raycynix messaging on top of Raycynix.Extensions.Database.
AddDatabasePersistence(...)IIncomingMessageInboxStoreIMessageOutboxStoreDatabaseContextDatabaseContext scopesExample 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 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
Expanded persistence test coverage for inbox and outbox concurrency, stale lease recovery, and cleanup behavior.