Interface IOutboundOperationRunner
- Namespace
- MailFathom.Application.Resilience
- Assembly
- MailFathom.Application.dll
Runs an outbound operation under the resilience budget configured for its dependency class.
public interface IOutboundOperationRunner
Remarks
The port exists so an adapter outside the boundary that owns the resilience library can still be governed by it. Persistence and mail adapters live beside that implementation and reach it directly; the provider adapters do not, and the alternative to this interface would be either a second retry mechanism or a project reference from one adapter boundary to another. Both are worse than one method.
It carries no strategy of its own and never will. Which limits apply, how a failure is classified, and what a caller sees when a limit is reached are the implementation's, so an adapter states only which dependency class it belongs to and which remote instance it is talking to.
Methods
- RunAsync<TResult>(OutboundDependency, string, Func<CancellationToken, Task<TResult>>, CancellationToken)
Runs an operation under the pipeline of one remote instance of a dependency class.