CoreSystem.Idempotency.Redis 2.1.0

dotnet add package CoreSystem.Idempotency.Redis --version 2.1.0
                    
NuGet\Install-Package CoreSystem.Idempotency.Redis -Version 2.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CoreSystem.Idempotency.Redis" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CoreSystem.Idempotency.Redis" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="CoreSystem.Idempotency.Redis" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CoreSystem.Idempotency.Redis --version 2.1.0
                    
#r "nuget: CoreSystem.Idempotency.Redis, 2.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CoreSystem.Idempotency.Redis@2.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CoreSystem.Idempotency.Redis&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=CoreSystem.Idempotency.Redis&version=2.1.0
                    
Install as a Cake Tool

⚡ CoreSystem.Idempotency.Redis

Redis storage provider for CoreSystem.Idempotency, built on the IIdempotencyStorage abstraction.

It is the recommended provider for production workloads that require low latency, horizontal scalability, and automatic expiration of idempotency entries.

The package targets .NET 8, .NET 9 and .NET 10, and ships an assembly for each of those frameworks.

NuGet Downloads License .NET Redis


✨ Features

  • ✅ Distributed idempotency
  • ✅ High-performance Redis storage
  • ✅ Automatic expiration
  • ✅ Horizontal scalability
  • ✅ Seamless integration with CoreSystem.Idempotency
  • ✅ OpenTelemetry compatible
  • ✅ Production-ready

📦 Installation

Install the framework.

dotnet add package CoreSystem.Idempotency

Install the Redis provider.

dotnet add package CoreSystem.Idempotency.Redis

🚀 Quick Start

Configure the Redis connection and register the provider.

builder.Services
    .AddCoreIdempotency(options =>
    {
        builder.Configuration
            .GetSection("Core:Idempotency")
            .Bind(options);
    })
    .AddCoreIdempotencyRedis(options =>
    {
        options.Configuration = redis =>
        {
            redis.EndPoints.Add("localhost:6379");
        };
    });

The connection endpoint is supplied through the RedisOptions.Configuration delegate, which receives a StackExchange.Redis.ConfigurationOptions instance.

To read the endpoint from configuration instead, assign it inside the same delegate.

{
  "ConnectionStrings": {
    "Redis": "localhost:6379"
  }
}
builder.Services.AddCoreIdempotencyRedis(options =>
{
    options.Configuration = redis =>
    {
        redis.EndPoints.Add(
            builder.Configuration.GetConnectionString("Redis")!);
    };
});

Note

RedisOptions.Configuration is an Action<ConfigurationOptions>, not a string. A plain connection string cannot be bound to it with Bind.

Enable the middleware.

app.UseCoreIdempotency();

⚡ Why Redis?

Redis is ideal for:

  • Distributed APIs
  • Kubernetes deployments
  • Microservices
  • High request throughput
  • Low-latency workloads

📊 Characteristics

Feature Supported
Distributed ✅
Automatic Expiration ✅
Low Latency ✅
Horizontal Scaling ✅
Durable Persistence ⚪ (Depends on Redis configuration)

📚 Documentation

Complete documentation includes:

  • Installation
  • Configuration
  • Production recommendations
  • Performance considerations
  • Architecture

🤝 Contributing

Contributions, bug reports and feature requests are always welcome. Fork the repository, create a feature branch, and open a pull request.


📄 License

Released under the MIT License.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
2.1.0 57 10/27/2026
2.0.2 90 10/18/2026
2.0.1 91 10/15/2026
2.0.0 384 8/8/2026

2.1.0: Multi-targeting release. The package now ships net8.0, net9.0 and net10.0 assets instead of net8.0 only, so a project on .NET 9 or .NET 10 gets an assembly compiled for its own target framework.
Dependency refresh. No code or API changes.
CoreSystem.Redis 1.0.3 to 1.0.4, which raises its own StackExchange.Redis floor
to 2.13.17, so the central pin moves with it. Also the refreshed transitive graph
(Microsoft.Extensions.*, OpenTelemetry.Extensions.Hosting 1.20.0).