Table of Contents

Class RelationalResilienceOptions

Namespace
eQuantic.Core.Data.Relational
Assembly
eQuantic.Core.Data.Relational.dll

The transient-fault retry policy for the relational engine — opt-in via services.AddRelationalResilience(...). Retries follow honest semantics:

  • Reads retry automatically: they are idempotent, and the broken pooled connection is reset before the next attempt.
  • Commits retry only behind RetryCommits: a commit that failed after the server applied it would re-run the whole batch. Concurrency tokens and client-generated keys make a double-apply fail loudly instead of silently — weigh that before opting in.
  • Inside an explicit transaction nothing retries — the transaction is broken; the caller must roll back and restart it.

Transience comes from the driver itself (IsTransient); attempts back off exponentially with jitter and are tagged on the current span (equantic.retries). The document and wide-column providers need none of this: their drivers ship native retry policies.

public sealed class RelationalResilienceOptions
Inheritance
RelationalResilienceOptions
Inherited Members

Properties

BaseDelay

The base backoff delay; attempt n waits roughly BaseDelay × 2ⁿ plus jitter (200 ms by default).

public TimeSpan BaseDelay { get; set; }

Property Value

TimeSpan

MaxRetries

The maximum number of retries after the first attempt (3 by default).

public int MaxRetries { get; set; }

Property Value

int

RetryCommits

Whether commits retry too. Off by default: a commit whose acknowledgement was lost may have been applied, and a retry re-runs the whole batch — enable it when concurrency tokens or client-generated keys make a double-apply detectable.

public bool RetryCommits { get; set; }

Property Value

bool