Robotico.Outbox 1.0.2

Robotico.Outbox

.NET 8 .NET 10 GitHub Packages Build

Reference Robotico.Outbox when you use the transactional outbox pattern. Interface: IOutbox (EnqueueAsync, CommitAsync returning Result).

Robotico dependencies

flowchart LR
  A[Robotico.Outbox] --> B[Robotico.Result]
Package Use with Outbox
Robotico.Option Optional message metadata (e.g. correlation id, partition key) as Option<T>; avoids null.
Robotico.Resilience Retry or circuit breaker in the outbox processor when publishing messages after commit (recommended).
Robotico.Validation Validate messages before EnqueueAsync (e.g. IValidator<TMessage>).

Quick start

Enqueue messages in the same transaction as your domain changes, then commit:

Result enqueueResult = await _outbox.EnqueueAsync(new OrderPlaced(orderId), cancellationToken);
if (enqueueResult.IsError(out _)) { /* handle */ }
Result commitResult = await _outbox.CommitAsync(cancellationToken);

A separate outbox processor (your code or a host) reads committed rows and publishes to the message bus. Use Robotico.Resilience for retry when publishing. See docs/design.adoc for design and related packages.

Installation

dotnet add package Robotico.Outbox

Building and testing

dotnet restore
dotnet build -c Release
dotnet test -c Release --verbosity normal

With coverage (Coverlet):

dotnet test -c Release --collect:"XPlat Code Coverage" --results-directory ./coverage

CI enforces 90% line coverage (or passes when the library has no executable lines) and runs a trim-validate build. Versioning: SemVer.

License

See repository license file.

Showing the top 20 packages that depend on Robotico.Outbox.

Packages Downloads
Robotico.Outbox.MishimaDb
IOutbox backed by MishimaDb logical-type rows. Enqueue stages one OutboxMessage row; optional MishimaWriteTransaction defers persistence until the host unit of work commits.
22
Robotico.Outbox.MishimaDocs
IOutbox backed by MishimaDocs. Enqueue writes one JSON document per message; optional IMishimaWriteBatch defers persistence until CommitAsync.
22
Robotico.Outbox.InMemory
In-memory IOutbox with preserved enqueue order for tests and single-process scenarios. Depends on Robotico.Outbox, Robotico.Result.
21
Robotico.Outbox.MishimaDb
IOutbox backed by MishimaDb logical-type rows. Enqueue stages one OutboxMessage row; optional MishimaWriteTransaction defers persistence until the host unit of work commits.
14
Robotico.Outbox.MishimaDocs
IOutbox backed by MishimaDocs. Enqueue writes one JSON document per message; optional IMishimaWriteBatch defers persistence until CommitAsync.
13
Robotico.Outbox.InMemory
In-memory IOutbox with preserved enqueue order for tests and single-process scenarios. Depends on Robotico.Outbox, Robotico.Result.
11
MishimaWf.AspNetCore
MishimaWf ASP.NET Core host integration.
8
MishimaWf.AspNetCore
MishimaWf ASP.NET Core host integration.
7
MishimaWf.AspNetCore
MishimaWf ASP.NET Core host integration.
6
Robotico.Outbox.MishimaDocs
IOutbox backed by MishimaDocs. Enqueue writes one JSON document per message; optional IMishimaWriteBatch defers persistence until CommitAsync.
4
Robotico.Outbox.CosmosDb
IOutbox with outbox container in Cosmos; same transaction scope. Depends on Robotico.Outbox, Robotico.Result, Microsoft.Azure.Cosmos.
3
Robotico.Outbox.EntityFrameworkCore
IOutbox with outbox table in same DbContext; optional background processor. Depends on Robotico.Outbox, Robotico.Result, Microsoft.EntityFrameworkCore.
3
Robotico.Outbox.MongoDb
IOutbox with outbox collection in same MongoDB; optional background processor. Depends on Robotico.Outbox, Robotico.Result, MongoDB.Driver.
3
Robotico.Outbox.MishimaDb
IOutbox backed by MishimaDb logical-type rows. Enqueue stages one OutboxMessage row; optional MishimaWriteTransaction defers persistence until the host unit of work commits.
3
MishimaWf.AspNetCore
MishimaWf ASP.NET Core host integration.
3
MishimaWf.AspNetCore
MishimaWf ASP.NET Core host integration.
2
Robotico.Outbox.CosmosDb
IOutbox with outbox container in Cosmos; same transaction scope. Depends on Robotico.Outbox, Robotico.Result, Microsoft.Azure.Cosmos.
2
Robotico.Outbox.EntityFrameworkCore
IOutbox with outbox table in same DbContext; optional background processor. Depends on Robotico.Outbox, Robotico.Result, Microsoft.EntityFrameworkCore.
2

.NET 8.0

.NET 10.0

Version Downloads Last updated
1.0.3 23 07/26/2026
1.0.2 34 06/03/2026