Features
The table below summarizes each feature and its default setting.
| Feature | Default setting | Documentation |
|---|---|---|
| Retry, backoff, and jitter | Three attempts, exponential backoff, and full jitter | Retry |
| Deadlines and attempt timeouts | 30 s deadline and 10 s attempt timeout | Deadlines |
| Measured attempt ceiling | Three times the recent p95, and it can only tighten the configured ceiling | Deadlines |
| Classification | Classifier.Default, or Classifier.Http for the HTTP preset | Classification |
| Retry budget | 10% of successful traffic, private per policy | Retry budget |
| Circuit breaker | Disabled (requires manual construction and scoping) | Circuit breaker |
| Breaker trip conditions | Five consecutive failures, five times the measured error rate, and half a window at three times the measured normal latency | Circuit breaker |
| Rate limiting | Disabled (opt-in, and queueing off when enabled) | Rate limiting |
| Hedging | Disabled (opt-in, and never against a fixed delay) | Hedging |
| Local saturation | Disabled (opt-in; it changes what every other measured term learns) | Local saturation |
| Keyed policy scope | Disabled (opt-in; on by default per host for HTTP and per service for gRPC) | Keyed policy scope |
| Streaming calls | Opt-in, through the RunAsync and TryRunAsync overloads taking a source | Streaming |
| Checkpointed stream resume | Opt-in, through the overloads taking a checkpoint; three restarts by default | Checkpointed resume |
| Deadline propagation | Disabled (opt-in on both halves) | Deadlines |
| Criticality | Disabled (opt-in on both halves) | Criticality |
| Drain-aware shutdown | Enabled for registered policies; a hand-built policy latches it itself | Drain-aware shutdown |
| Telemetry | Enabled for registered policies; disabled for hand-built policies | Telemetry |
| Logging | Enabled for registered policies; opt-in for hand-built policies | Logging |
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>.
