NetEvolve.Pulse.MySql
0.67.36
Prefix Reserved
dotnet add package NetEvolve.Pulse.MySql --version 0.67.36
NuGet\Install-Package NetEvolve.Pulse.MySql -Version 0.67.36
<PackageReference Include="NetEvolve.Pulse.MySql" Version="0.67.36" />
<PackageVersion Include="NetEvolve.Pulse.MySql" Version="0.67.36" />
<PackageReference Include="NetEvolve.Pulse.MySql" />
paket add NetEvolve.Pulse.MySql --version 0.67.36
#r "nuget: NetEvolve.Pulse.MySql, 0.67.36"
#:package NetEvolve.Pulse.MySql@0.67.36
#addin nuget:?package=NetEvolve.Pulse.MySql&version=0.67.36
#tool nuget:?package=NetEvolve.Pulse.MySql&version=0.67.36
NetEvolve.Pulse.MySql
MySQL persistence provider for the Pulse outbox and idempotency patterns using plain ADO.NET.
Overview
NetEvolve.Pulse.MySql provides MySQL-backed implementations of the outbox and idempotency patterns:
MySqlOutboxRepository— ImplementsIOutboxRepositorywith optimized MySQL queries and schema scripts for table creation.MySqlOutboxManagement— ImplementsIOutboxManagementfor dead-letter inspection, replay, and statistics.MySqlIdempotencyKeyRepository— ImplementsIIdempotencyKeyRepositoryfor at-most-once command processing.
Requirements
- MySQL 8.0 or later — Required for
SELECT … FOR UPDATE SKIP LOCKEDsupport (concurrent polling safety). MySql.Data— Oracle MySQL Connector/NET.
Getting Started
1. Create the database schema
Run the SQL scripts from the Scripts/ folder against your MySQL database:
mysql -u <user> -p <database> < OutboxMessage.sql
mysql -u <user> -p <database> < IdempotencyKey.sql
2. Register services
Outbox:
services.AddPulse(config => config
.AddOutbox()
.AddMySqlOutbox("Server=localhost;Database=mydb;User Id=root;Password=secret;")
);
Idempotency:
services.AddPulse(config => config
.AddMySqlIdempotencyStore("Server=localhost;Database=mydb;User Id=root;Password=secret;")
);
Data Types
| C# type | MySQL column type | Encoding |
|---|---|---|
Guid |
BINARY(16) |
Guid.ToByteArray() / new Guid(byte[]) |
DateTimeOffset |
BIGINT |
UTC ticks |
This encoding is interchangeable with the NetEvolve.Pulse.EntityFramework MySQL provider.
Notes
MySQL does not use schema namespaces in the same way as SQL Server or PostgreSQL. The OutboxOptions.Schema and IdempotencyKeyOptions.Schema properties are not used; tables are always created in the active database specified by the connection string.
| 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- MySql.Data (>= 9.7.0)
- NetEvolve.Pulse (>= 0.67.36)
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- MySql.Data (>= 9.7.0)
- NetEvolve.Pulse (>= 0.67.36)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- MySql.Data (>= 9.7.0)
- NetEvolve.Pulse (>= 0.67.36)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.67.36 | 48 | 5/10/2026 |