Class MailOutboxSettings
- Namespace
- MailFathom.Application.Mail.Delivery.Outbox
- Assembly
- MailFathom.Application.dll
Bounds one delivery pass: how much it takes, how long it holds it, how long one send may run, and how often a transient failure is retried.
public sealed record MailOutboxSettings : IEquatable<MailOutboxSettings>
- Inheritance
-
MailOutboxSettings
- Implements
- Inherited Members
Remarks
The ordering between the two durations is the whole reason this is validated rather than passed as loose values. An attempt has to be cancelled before its lease can expire underneath it, because a lease that ran out while its holder was still transmitting is a second attempt taking a message the first may already have sent — so a timeout at or above the lease duration is refused rather than warned about.
The attempt bound and the two retry delays are the outbox's own budget for offering a message again, and there is exactly one of them. What an attempt calls is already retried inside itself by the delivery dependency's resilience pipeline, which repeats a submission server's explicit temporary rejection and nothing else; a second bound at this level would multiply against that one instead of bounding anything.
Properties
- AllowedLateness
Gets how long after the time a send was written for this deployment will still deliver it.
- AttemptTimeout
Gets how long one send may be attempted for before it is cancelled.
- LeaseDuration
Gets how long a claim holds each record it takes.
- MaxAttempts
Gets how many attempts one send may be handed out for before a transient failure ends it.
- MaxDeliveriesPerPass
Gets the greatest number of queued sends one pass claims.
- RetryBaseDelay
Gets the delay the first retry is drawn around, from which the doubling grows.
- RetryMaxDelay
Gets the ceiling a grown retry delay never exceeds.
Methods
- Create(int, TimeSpan, TimeSpan, int, TimeSpan, TimeSpan, TimeSpan)
States the bounds one pass runs under.