Reimaginate.ProcessingLockService.Redis 4.0.0

dotnet add package Reimaginate.ProcessingLockService.Redis --version 4.0.0
                    
NuGet\Install-Package Reimaginate.ProcessingLockService.Redis -Version 4.0.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="Reimaginate.ProcessingLockService.Redis" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reimaginate.ProcessingLockService.Redis" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Reimaginate.ProcessingLockService.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 Reimaginate.ProcessingLockService.Redis --version 4.0.0
                    
#r "nuget: Reimaginate.ProcessingLockService.Redis, 4.0.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 Reimaginate.ProcessingLockService.Redis@4.0.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=Reimaginate.ProcessingLockService.Redis&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Reimaginate.ProcessingLockService.Redis&version=4.0.0
                    
Install as a Cake Tool

Reimaginate.ProcessingLockService.Redis

Optional Redis provider for ProcessingLockService 4.0.0 (.NET 10). Install this package in Redis applications; it brings the core service, Reimaginate.RedisClient and StackExchange.Redis dependencies. In-memory and Cosmos applications do not need it.

Registration

using Reimaginate.ProcessingLockService;
using Reimaginate.ProcessingLockService.Redis;

services.AddProcessingLockService(options =>
    options.WithRedisRepository(redis => redis.ConnString = redisConnectionString));

The callback overload creates a Redis client owned and disposed by the repository. To reuse a client managed by the application:

services.AddProcessingLockService(options => options.WithRedisRepository(existingRedisClient));

The application retains ownership of a supplied IRedisClient. Disposing the lock service does not close or dispose that shared client.

Direct repository construction

ProcessingLockInRedisRepository lives in this assembly while retaining its namespace, Reimaginate.ProcessingLockService.Repositories, and both constructor signatures:

using Reimaginate.ProcessingLockService;
using Reimaginate.ProcessingLockService.Repositories;

var options = new ProcessingLockServiceOptions()
    .WithRepository(new ProcessingLockInRedisRepository(existingRedisClient));

The provider retains the existing Redis keys, JSON payloads, TTLs, Lua transactions, tenant isolation, ownership tokens and error codes. The extraction requires no stored data migration. It does not change Redis connection settings or dependency versions.

Upgrade and verification

The 3.x instance methods ProcessingLockServiceOptions.WithRedisRepository(...) are now extension methods in this package. Add its package reference and import Reimaginate.ProcessingLockService.Redis, then recompile. Applications using the moved repository type must also recompile because its assembly identity changed.

See the repository's 4.0 migration guide for package selection, examples and compatibility details.

The existing Redis provider contract, repository and contention-diagnostics tests now reference this package. Its registration factory exercises the callback extension. Run the suite with Docker available to execute Redis Testcontainer tests:

dotnet test test/Reimaginate.ProcessingLockService.UnitTests/Reimaginate.ProcessingLockService.UnitTests.csproj --filter FullyQualifiedName~Redis
Product Compatible and additional computed target framework versions.
.NET 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 (2)

Showing the top 2 NuGet packages that depend on Reimaginate.ProcessingLockService.Redis:

Package Downloads
Reimaginate.DataHub

Core DataHub runtime for request handling, data operations, validation, telemetry, and persistence integration.

Reimaginate.DataHub.Agent.Dataverse

Microsoft Dataverse integration agent for Reimaginate DataHub synchronization, merge processing, and Dataverse access.

GitHub repositories

This package is not used by any popular GitHub repositories.