---
title: Limits and Guarantees
description: Practical runtime guarantees and important operational boundaries.
order: 73
---

# 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.
