DotEventOutbox 1.0.1
See the version list below for details.
dotnet add package DotEventOutbox --version 1.0.1
NuGet\Install-Package DotEventOutbox -Version 1.0.1
<PackageReference Include="DotEventOutbox" Version="1.0.1" />
paket add DotEventOutbox --version 1.0.1
#r "nuget: DotEventOutbox, 1.0.1"
// Install DotEventOutbox as a Cake Addin #addin nuget:?package=DotEventOutbox&version=1.0.1 // Install DotEventOutbox as a Cake Tool #tool nuget:?package=DotEventOutbox&version=1.0.1
DotEventOutbox Library
Overview
DotEventOutbox
is a .NET library designed to facilitate robust and efficient handling of domain events using the Outbox Pattern. It provides a suite of tools and services to ensure reliable and scalable event processing, particularly in distributed systems or microservices architectures.
Features
- Domain Event Handling: Define and handle domain events in your application.
- Outbox Pattern Implementation: Reliably handle event dispatch to ensure consistency and fault tolerance.
- Idempotent Processing: Ensure each event is processed only once.
- Configurable and Extendable: Tailor the library to fit the specific needs of your application.
Getting Started
Installation
You can install the DotEventOutbox
library via NuGet package manager. Run the following command:
dotnet add package DotEventOutbox
Basic Setup
Configure Services: Add
DotEventOutbox
to your service collection in theStartup.cs
or wherever you configure services.string schemaName = "Outbox"; services.AddOutbox(configuration, options => options.UseNpgsql(configuration.GetConnectionString("AppDb"), o => o.MigrationsHistoryTable(HistoryRepository.DefaultTableName, schemaName)), schemaName);
Applying Migrations: Apply migrations to set up the necessary database tables.
- For development, you can apply migrations automatically during application startup.
- For production, it's recommended to apply migrations manually or as part of your CI/CD pipeline.
Usage
- Define domain events implementing
IEvent
. - Implement
IDomainEventEmitter
in your entities. - Use
OutboxMessageProcessingJob
for processing and dispatching events.
Advanced Configuration
- Customize the
OutboxMessage
entity configurations as needed. - Configure Quartz jobs for event processing schedules.
Contributing
Contributions are welcome! If you have a feature request, bug report, or pull request, please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
Acknowledgements
Special thanks to the contributors and users of DotEventOutbox
. Your feedback and support are greatly appreciated!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- DotEventOutbox.Common (>= 1.0.0)
- DotEventOutbox.Contracts (>= 1.0.0)
- MediatR (>= 12.2.0)
- Microsoft.EntityFrameworkCore (>= 8.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
- Polly (>= 8.2.0)
- Quartz (>= 3.8.0)
- Quartz.Extensions.Hosting (>= 3.8.0)
- Scrutor (>= 4.2.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.