Table of Contents

Class AsiBackboneGovernanceOutboxOptions

Namespace
AsiBackbone.Core.Outbox
Assembly
AsiBackbone.Core.dll

Provides provider-neutral retry timing, poison-message, and optional claim/lease options for governance outbox drain processing.

public sealed class AsiBackboneGovernanceOutboxOptions
Inheritance
AsiBackboneGovernanceOutboxOptions
Inherited Members

Remarks

These options control default retry timestamps when a downstream emitter does not provide its own retry-after value. Claim leasing remains opt-in and requires a claim-capable outbox store.

Fields

DefaultDeadLetterReasonCode

Gets the stable default reason code used when the drain dead-letters an entry after the configured retry threshold is reached.

public const string DefaultDeadLetterReasonCode = "outbox.max_retry_attempts_exceeded"

Field Value

string

DefaultDeadLetterReasonMessage

Gets the stable default reason message used when the drain dead-letters an entry after the configured retry threshold is reached.

public const string DefaultDeadLetterReasonMessage = "Governance outbox entry exceeded the configured maximum retry attempts."

Field Value

string

Properties

ClaimLeaseDuration

Gets or sets the lease duration used when UseClaimLeases is enabled.

public TimeSpan ClaimLeaseDuration { get; set; }

Property Value

TimeSpan

ClaimWorkerId

Gets or sets the worker, process, node, or partition identifier used when UseClaimLeases is enabled.

public string? ClaimWorkerId { get; set; }

Property Value

string

DeadLetterOnMaxRetryAttempts

Gets or sets a value indicating whether entries are dead-lettered when MaxRetryAttempts is reached.

public bool DeadLetterOnMaxRetryAttempts { get; set; }

Property Value

bool

DeadLetterReasonCode

Gets or sets the provider-neutral reason code recorded when the configured retry threshold is reached.

public string DeadLetterReasonCode { get; set; }

Property Value

string

DeadLetterReasonMessage

Gets or sets the provider-neutral reason message recorded when the configured retry threshold is reached.

public string DeadLetterReasonMessage { get; set; }

Property Value

string

DeferredDelay

Gets or sets the default delay applied when an emitter returns a pending or deferred result without a retry-after timestamp.

public TimeSpan DeferredDelay { get; set; }

Property Value

TimeSpan

MaxRetryAttempts

Gets or sets the maximum number of failed emission attempts permitted before the drain applies its poison-message policy.

public int MaxRetryAttempts { get; set; }

Property Value

int

Remarks

The threshold counts the failure currently being processed. A value of 1 dead-letters the first failed attempt when DeadLetterOnMaxRetryAttempts is enabled.

RetryDelay

Gets or sets the default delay applied after a transient emission failure or unexpected emitter exception.

public TimeSpan RetryDelay { get; set; }

Property Value

TimeSpan

UseClaimLeases

Gets or sets a value indicating whether the drain should claim outbox entries before provider emission when the store supports claim leases.

public bool UseClaimLeases { get; set; }

Property Value

bool

Methods

Validate()

Validates the configured outbox retry, poison-message, timing, and claim options.

public void Validate()

Exceptions

InvalidOperationException

Thrown when a retry threshold, reason, delay, or claim lease option is invalid.