Trellis.EntityFrameworkCore.Inbox
3.0.0-alpha.557
See the version list below for details.
dotnet add package Trellis.EntityFrameworkCore.Inbox --version 3.0.0-alpha.557
NuGet\Install-Package Trellis.EntityFrameworkCore.Inbox -Version 3.0.0-alpha.557
<PackageReference Include="Trellis.EntityFrameworkCore.Inbox" Version="3.0.0-alpha.557" />
<PackageVersion Include="Trellis.EntityFrameworkCore.Inbox" Version="3.0.0-alpha.557" />
<PackageReference Include="Trellis.EntityFrameworkCore.Inbox" />
paket add Trellis.EntityFrameworkCore.Inbox --version 3.0.0-alpha.557
#r "nuget: Trellis.EntityFrameworkCore.Inbox, 3.0.0-alpha.557"
#:package Trellis.EntityFrameworkCore.Inbox@3.0.0-alpha.557
#addin nuget:?package=Trellis.EntityFrameworkCore.Inbox&version=3.0.0-alpha.557&prerelease
#tool nuget:?package=Trellis.EntityFrameworkCore.Inbox&version=3.0.0-alpha.557&prerelease
Trellis.EntityFrameworkCore.Inbox
Transactional inbox for idempotent integration-event consumption with EF Core.
The inbox records (ConsumerId, MessageId) in the same unit of work as a handler's local writes, turning transport redelivery into effectively-once application of those effects.
This package opts out of NativeAOT and trimming because it builds on EF Core and resolves handlers by event type at dispatch time.
Installation
dotnet add package Trellis.EntityFrameworkCore.Inbox
Quick Example
protected override void OnModelCreating(ModelBuilder modelBuilder) =>
modelBuilder.AddTrellisInbox();
services.AddTrellis(trellis => trellis
.UseIntegrationEvents(typeof(Program).Assembly)
.UseEntityFrameworkUnitOfWork<AppDbContext>()
.UseInbox<AppDbContext>(options =>
options.ConsumerId = "orders-service"));
Your transport adapter passes each received event to IInboxDispatcher.DispatchAsync(...) using the producer's stable message ID.
Key Features
- Commits the deduplication row and handler writes atomically in one
DbContext. - Returns
ProcessedorSkippedDuplicateso transports can settle both outcomes. - Propagates handler failures so the transaction rolls back and the transport redelivers.
- Restores inbound business correlation and W3C trace context during handlers and their atomic commit.
- Uses a composite
(ConsumerId, MessageId)key as the concurrency guard. - Supports anti-join filtering and optional pull-consumer checkpoints.
Keep ConsumerId stable across deployments and carry the producer's outbox row ID unchanged as MessageId. External calls are outside the inbox transaction and require their own idempotency.
Documentation
| 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
- Mediator.Abstractions (>= 3.0.2)
- Microsoft.EntityFrameworkCore (>= 10.0.12)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- OpenTelemetry.Api (>= 1.19.1)
- Trellis.EntityFrameworkCore (>= 3.0.0-alpha.557)
- Trellis.Mediator (>= 3.0.0-alpha.557)
- Trellis.Persistence.Abstractions (>= 3.0.0-alpha.557)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Trellis.EntityFrameworkCore.Inbox:
| Package | Downloads |
|---|---|
|
Trellis.ServiceDefaults
Opinionated service composition defaults for Trellis web services. Provides a tiered builder that wires ASP integration, Mediator behaviors, FluentValidation, resource authorization, actor providers, and EF Core Unit of Work in canonical order. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-alpha.582 | 72 | 10/19/2026 |
| 3.0.0-alpha.574 | 89 | 10/14/2026 |
| 3.0.0-alpha.571 | 62 | 10/13/2026 |
| 3.0.0-alpha.557 | 96 | 10/8/2026 |
| 3.0.0-alpha.554 | 62 | 10/8/2026 |
| 3.0.0-alpha.553 | 62 | 10/7/2026 |
| 3.0.0-alpha.542 | 117 | 10/5/2026 |
| 3.0.0-alpha.539 | 78 | 10/4/2026 |
| 3.0.0-alpha.532 | 70 | 10/2/2026 |
| 3.0.0-alpha.527 | 62 | 10/1/2026 |
| 3.0.0-alpha.526 | 65 | 9/30/2026 |
| 3.0.0-alpha.524 | 67 | 9/27/2026 |
| 3.0.0-alpha.520 | 76 | 9/25/2026 |
| 3.0.0-alpha.516 | 165 | 9/22/2026 |
| 3.0.0-alpha.513 | 71 | 9/22/2026 |
| 3.0.0-alpha.505 | 79 | 9/13/2026 |
| 3.0.0-alpha.495 | 142 | 8/24/2026 |
| 3.0.0-alpha.458 | 120 | 8/19/2026 |
| 3.0.0-alpha.455 | 135 | 8/19/2026 |
| 3.0.0-alpha.449 | 82 | 8/18/2026 |