Skip to content
NLNuvyntra Labs

Documentation

Operation pipeline

IOperationExecutor: busy, cancel, timeout, retry, debounce, throttle, queue, and Outcome on one entry.

IOperationExecutor

AddMvvmExpress registers OperationExecutor. AsyncModelCommand, ExecuteBusyAsync, and app services can share one pipeline: busy + cancellation + timeout + retry + debounce / throttle + concurrency + Outcome. That is not a Polly clone and not a ReactiveCommand clone. HTTP resilience still belongs in Plugin.Maui.ApiResilience.

CanExecute
  → concurrency (Prevent | CancelPrevious | Queue | Allow | Replace)
  → debounce / throttle
  → timeout
  → retry
  → execute
  → IsRunning / error sink / Outcome

await executor.RunAsync(ct => catalog.ListAsync(ct), new OperationOptions
{
    Timeout = TimeSpan.FromSeconds(15),
    RetryCount = 2,
    Concurrency = ConcurrencyMode.Prevent,
}, ct);