Skip to content

🚀 Getting Started

Welcome to CoreSystem.Idempotency, a production-ready idempotency framework for .NET 8.

In this guide you'll learn how to:

  • Install the framework
  • Install a storage provider
  • Configure the middleware
  • Register the services
  • Execute your first idempotent request

Estimated time: 5 minutes


Prerequisites

Before getting started, ensure you have:

  • .NET 8 SDK
  • An ASP.NET Core application
  • One supported storage provider

Choose a Storage Provider

CoreSystem.Idempotency requires a storage provider to persist idempotency entries.

Currently supported providers:

  • CoreSystem.Idempotency.Redis
  • CoreSystem.Idempotency.PostgreSql

Each provider has its own installation, configuration, and operational guidance.

See Storage Providers for more information.


Step 1 — Install the Framework

Install the core framework.

dotnet add package CoreSystem.Idempotency

The package contains:

  • Idempotency middleware
  • Request fingerprinting
  • Response replay
  • Storage abstractions
  • Built-in observability

Step 2 — Install a Storage Provider

Choose the provider that best fits your application.

Redis

dotnet add package CoreSystem.Idempotency.Redis

PostgreSQL

dotnet add package CoreSystem.Idempotency.PostgreSql

Step 3 — Configure the Framework

Configure the framework in appsettings.json.

{
  "Core": {
    "Idempotency": {
      "Enabled": true,
      "InstanceName": "Orders"
    }
  }
}

Note

The configuration shown above contains only the minimum required settings. See Configuration for the complete list of available options.


Step 4 — Register the Services

Register the framework.

builder.Services
    .AddCoreIdempotency(options =>
    {
        builder.Configuration
            .GetSection("Core:Idempotency")
            .Bind(options);
    });

Then register the storage provider.

Redis

builder.Services.AddCoreIdempotencyRedis(options =>
{
    // Configure Redis
});

PostgreSQL

builder.Services.AddCoreIdempotencyPostgreSql(options =>
{
    // Configure PostgreSQL
});

AddCoreIdempotency() registers the middleware, request fingerprinting services, diagnostics, and storage abstractions.

The provider package registers the corresponding IIdempotencyStorage implementation.


Step 5 — Enable the Middleware

Configure the ASP.NET Core request pipeline.

var app = builder.Build();

app.UseCoreIdempotency();

app.Run();

Step 6 — Send an Idempotent Request

Include an idempotency key in every request that should execute only once.

POST /orders HTTP/1.1
Idempotency-Key: 8db99b84-6b57-41e3-ae66-98c4d4a2d9d5
Content-Type: application/json

{
  "productId": 1,
  "quantity": 2
}

The first request is processed normally and its response is persisted by the configured storage provider.

Subsequent requests using the same idempotency key and an identical request fingerprint receive the previously stored response without executing the endpoint again.


Next Steps

Now that the framework is running, continue with:

  • Configuration
  • Architecture
  • Fingerprinting
  • Storage Providers