Skip to main content
Version: v1.5.2 (latest)

Delivery Log Installation

Prerequisites​

  • .NET 8 or later
  • Microsoft.Extensions.Logging.Abstractions (for logging integration)

Package Installation​

Core Package​

The core package provides the middleware and error handler:

dotnet add package Hermodr.Publisher.DeliveryLog

Storage Backend Packages​

Choose one or more storage backends based on your needs:

In-Memory (Development/Testing)​

dotnet add package Hermodr.Publisher.DeliveryLog.InMemory

NDJSON Rolling Files (Production, File-Based)​

dotnet add package Hermodr.Publisher.DeliveryLog.NDJson

Entity Framework Core (Production, Database)​

dotnet add package Hermodr.Publisher.DeliveryLog.EntityFramework
dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Replace Sqlite with your actual provider (SqlServer, Npgsql, etc.).

Package Overview​

PackagePurposeRequired
Hermodr.Publisher.DeliveryLogCore middleware and error handler✅ Yes
Hermodr.Publisher.DeliveryLog.InMemoryIn-memory storage backendFor testing
Hermodr.Publisher.DeliveryLog.NDJsonNDJSON file-based backendFor file storage
Hermodr.Publisher.DeliveryLog.EntityFrameworkEF Core backendFor database storage
Microsoft.EntityFrameworkCore.*Database providerFor EF Core backend

What's Included​

Core Package​

  • DeliveryLogMiddleware — Middleware that records every publish attempt
  • DeliveryLogPublishErrorHandler — Error handler for the failure path
  • EventDeliveryRecord — Data contract for delivery telemetry
  • EventDeliveryOutcome — Three-state outcome enum
  • IEventPublishDeliveryLog — Storage abstraction

Storage Packages​

Each storage package provides:

  • Implementation of IEventPublishDeliveryLog
  • Storage-specific configuration options
  • Query APIs for reading delivery records (where applicable)

Next Steps​

After installation, proceed to:

  1. Middleware — Understand how the middleware works
  2. Error Handler — Learn about the error path capture
  3. Registration — Wire everything up
  4. Storage Backends — Choose and configure your backend