Pinguteca.Sdk.Core.Hedge 0.4.0

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

Pinguteca.Sdk.Core.Hedge

Hedged-requests gRPC interceptor for Pinguteca SDK clients. Layer 3 companion to Pinguteca.Sdk.Core.

Ships separately because parallel-attempt orchestration is ecosystem-native (Tasks plus Channels in .NET, goroutines plus channels in Go, Tokio mpsc in Rust, etc.) and because hedge is an opt-in tail-latency tool that multiplies backend load. Cross-SDK contract pinned in RFC 0013.

Install

dotnet add package Pinguteca.Sdk.Core.Hedge

What ships

  • HedgeInterceptor runs up to N parallel attempts of the same RPC and returns the first successful response, cancelling the others.
  • Default policy: 3 total attempts, 50 ms stagger, hedges only methods that return HedgeEligibility.NoSideEffects from the caller-supplied IsHedgeEligible hook. Idempotent methods are skipped unless HedgeIdempotent = true.
  • LAST observed error returned on all-fail (most-recent-state).
  • Streaming RPCs pass through unchanged.

Quickstart

using Grpc.Core.Interceptors;
using Grpc.Net.Client;
using Pinguteca.Sdk.Core.Hedge;

var channel = GrpcChannel.ForAddress("https://api.example.com");
var invoker = channel.Intercept(new HedgeInterceptor(new()
{
    IsHedgeEligible = method => method.EndsWith("/Read")
        ? HedgeEligibility.NoSideEffects
        : HedgeEligibility.Unknown,
}));

var client = new YourService.YourServiceClient(invoker);

Hedge attempts count as retry attempts to the outer retry interceptor; lower RetryOptions.MaxAttempts accordingly to keep total request volume bounded.

Docs

https://github.com/Pinguteca/sdk-core-dotnet

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

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.4.0 79 6/7/2026
0.3.1 96 5/18/2026