Legacy Laravel workflows can now set a delay when a queued workflow, activity, signal or child-completion job cannot acquire its overlap lock. This addresses rapid database-queue retries reported in #897.
use Workflow\WorkflowOptions;
$workflow->start('argument', new WorkflowOptions(overlapReleaseAfter: 5));The delay is a nonnegative integer in seconds. The default remains zero. Existing serialized options, routing, lock ownership and expiry remain compatible. Children and continue-as-new inherit the stored setting unless explicit options replace it. Existing runs keep their stored options.
Laravel counts released queue reservations toward attempt limits. Choose a suitable delay and retry budget; the option does not make an arbitrarily low attempt limit safe.
This setting applies to Workflow\Workflow. V2 uses durable task claims and ignores the legacy setting. No portable protocol or database migration changes are included.
Applications staying on 1.x can install 1.1.0, which contains the scoped backport.
Implementation and qualification: #903. Documentation: durable-workflow/durable-workflow.github.io#356.