SQLite persistence provider for the Pulse outbox pattern using plain ADO.NET. Designed for embedded, edge, and CLI scenarios where you need outbox reliability without external infrastructure.
- Embedded, single-file storage with no server dependency
- ADO.NET implementation using
Microsoft.Data.Sqlite - Safe concurrent polling via
BEGIN IMMEDIATEtransactions - Optional Write-Ahead Logging (WAL) for read/write concurrency
- Outbox management APIs for inspecting, replaying, and cleaning messages
- Configurable table name and connection string (file or in-memory)
Install-Package NetEvolve.Pulse.SQLitedotnet add package NetEvolve.Pulse.SQLite<PackageReference Include="NetEvolve.Pulse.SQLite" />using NetEvolve.Pulse;
using NetEvolve.Pulse.SQLite;
services.AddPulse(config => config
.AddOutbox()
.UseSQLiteOutbox("Data Source=outbox.db"));services.AddPulse(config => config
.AddOutbox()
.UseSQLiteOutbox(opts =>
{
opts.ConnectionString = "Data Source=outbox.db";
opts.EnableWalMode = true;
}));services.AddPulse(config => config
.AddOutbox()
.UseSQLiteOutbox(opts =>
{
opts.ConnectionString = $"Data Source=testdb_{Guid.NewGuid():N};Mode=Memory;Cache=Shared";
opts.TableName = "OutboxMessage";
opts.EnableWalMode = false; // WAL unsupported for in-memory
}));services.AddPulse(config => config
.AddOutbox()
.UseSQLiteOutbox(opts =>
{
opts.ConnectionString = "Data Source=outbox.db";
opts.TableName = "OutboxMessage";
opts.EnableWalMode = true;
opts.JsonSerializerOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
}));- .NET 8.0 or higher (net8.0, net9.0, net10.0 targets)
- SQLite database file access or in-memory connection string
- NetEvolve.Pulse.SqlServer – SQL Server outbox provider
- NetEvolve.Pulse.PostgreSql – PostgreSQL outbox provider
- NetEvolve.Pulse – Core Pulse mediator and abstractions
For complete documentation, please visit the official documentation.
Contributions are welcome! Please read the Contributing Guidelines before submitting a pull request.
- Issues: Report bugs or request features on GitHub Issues
- Documentation: Read the full documentation at https://github.com/dailydevops/pulse
This project is licensed under the MIT License - see the LICENSE file for details.
Note
Made with ❤️ by the NetEvolve Team Visit us at https://www.daily-devops.net for more information about our services and solutions.