Version v0.1 · dotnet

Limits and Guarantees

Practical runtime guarantees and important operational boundaries.

Limits and Guarantees

This page summarizes what DurableStack aims to guarantee and where limits apply.

Practical guarantees

  • Durable providers persist run state across process restarts.
  • Lease ownership limits active execution of a run to one worker in normal operation.
  • Failed runs are retried while Attempt < MaxAttempts.
  • Recurring schedules materialize due runs according to cron/time-zone rules.

Important limits

  • In-memory provider is process-local and not durable across restart.
  • In-memory provider does not support distributed multi-worker coordination.
  • Throughput is bounded by worker settings (BatchSize, MaxConcurrentRuns) and provider capacity.
  • Retry behavior is bounded by MaxAttempts, delay strategy, and optional max delay.

Distributed system reality

DurableStack is designed for effectively-once behavior in normal operation.

Because of crash/recovery timing in distributed systems, handlers must remain idempotent.

Retention boundaries

  • Default run retention: 24h for durable DB providers.
  • Default run retention: 1h for in-memory provider.
  • Historical runs are pruned according to retention configuration.