dotnet / dotnet/extensions

[API Proposal]: Resilience extensions - Propose to have IHttpStandardResiliencePipelineBuilder and IStandardHedgingHandlerBuilder inherit from IHttpResiliencePipelineBuilder

Open
#6,166 0 comments 0 reactions 0 assignees View on GitHub
api-suggestion area-resilience untriaged
Dominant language
C#
Stars
3.2k
Forks
894
Avg merge
1d 12h
Merged PRs (30d)
23

Description

### Background and motivation

### Motivation

Could we have [IHttpStandardResiliencePipelineBuilder ](https://source.dot.net/#Microsoft.Extensions.Http.Resilience/Resilience/IHttpStandardResiliencePipelineBuilder.cs,11) and [IStandardHedgingHandlerBuilder](https://source.dot.net/#Microsoft.Extensions.Http.Resilience/Hedging/[IStandardHedgingHandlerBuilder.cs](https://source.dot.net/#Microsoft.Extensions.Http.Resilience/Hedging/IStandardHedgingHandlerBuilder.cs,11),11) inherited from [IHttpResiliencePipelineBuilder](https://source.dot.net/Microsoft.Extensions.Http.Resilience/R/c0cda6c6637b6445.html), so that it's more extensible and we can have future pipelines follow the same pattern.

### API Proposal

```csharp
public interface IHttpResiliencePipelineBuilder
{
///
/// Gets the name of the resilience pipeline configured by this builder.
///
string PipelineName { get; }

///
/// Gets the application service collection.
///
IServiceCollection Services { get; }
}

public interface IHttpStandardResiliencePipelineBuilder: IHttpResiliencePipelineBuilder
{
}

public interface IStandardHedgingHandlerBuilder: IHttpResiliencePipelineBuilder
{
///
/// Gets the builder for the routing strategy.
///
IRoutingStrategyBuilder RoutingStrategyBuilder { get; }
}
```

### API Usage

Exactly same usage for now.

### Alternative Designs

_No response_

### Risks

No risks.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.