Skip to content

Features ​

The table below summarizes each feature and its default setting.

FeatureDefault settingDocumentation
Retry, backoff, and jitterThree attempts, exponential backoff, and full jitterRetry
Deadlines and attempt timeouts30 s deadline and 10 s attempt timeoutDeadlines
Measured attempt ceilingThree times the recent p95, and it can only tighten the configured ceilingDeadlines
ClassificationClassifier.Default, or Classifier.Http for the HTTP presetClassification
Retry budget10% of successful traffic, private per policyRetry budget
Circuit breakerDisabled (requires manual construction and scoping)Circuit breaker
Breaker trip conditionsFive consecutive failures, five times the measured error rate, and half a window at three times the measured normal latencyCircuit breaker
Rate limitingDisabled (opt-in, and queueing off when enabled)Rate limiting
HedgingDisabled (opt-in, and never against a fixed delay)Hedging
Local saturationDisabled (opt-in; it changes what every other measured term learns)Local saturation
Keyed policy scopeDisabled (opt-in; on by default per host for HTTP and per service for gRPC)Keyed policy scope
Streaming callsOpt-in, through the RunAsync and TryRunAsync overloads taking a sourceStreaming
Checkpointed stream resumeOpt-in, through the overloads taking a checkpoint; three restarts by defaultCheckpointed resume
Deadline propagationDisabled (opt-in on both halves)Deadlines
CriticalityDisabled (opt-in on both halves)Criticality
Drain-aware shutdownEnabled for registered policies; a hand-built policy latches it itselfDrain-aware shutdown
TelemetryEnabled for registered policies; disabled for hand-built policiesTelemetry
LoggingEnabled for registered policies; opt-in for hand-built policiesLogging

The two transport integrations add what a policy alone cannot decide: HTTP for request reuse, idempotency, and per-host scoping, and gRPC for status classification, the grpc-timeout deadline, per-service scoping, and server streaming on the streaming semantic in the preceding table.

Fallback is handled as a conditional check on a CallResult<T>.

Released under the MIT License.