Version v1.x
Provider Contract
Available in
Behavioral requirements every DurableStack storage provider must satisfy.
All providers must implement the same functional contract so runtime behavior remains consistent.
In .NET internals, this contract is represented primarily by IDurableJobStore and, for durable providers, IDurableStackStoreMigrator; other runtimes implement the same behaviors with their own abstractions.
Required capabilities
- Enqueue immediate and delayed runs.
- Claim due runs safely with lease ownership.
- Mark runs succeeded or failed with retry metadata.
- Query runs by ID, status, and job.
- Support recurring job state operations.
- Support retention pruning behavior.
- Extend run leases during execution heartbeat.
Distributed safety expectations
Durable providers must support safe concurrent claiming semantics so multiple workers do not actively process the same run under normal conditions.
Typical provider strategies include row locks and skip-locked style claim paths.
Migration and initialization
Durable providers are expected to support migration/init in each runtime (for example, IDurableStackStoreMigrator in .NET).
In-memory provider is an exception and uses a no-op migrator.
Table naming
Default logical table names:
durable_stack_jobsdurable_stack_job_runsdurable_stack_job_locks
When DatabaseTablePrefix is set, providers prepend the prefix to durable objects.