Skip to content
Nuvyntra 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);

Discussion

Comment on Plugin.Maui.MVVMExpress. The thread lives on this component's GitHub repository (nuvyntralabs/Plugin.Maui.MVVMExpress). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.