github durable-workflow/workflow 2.5.28

2 hours ago

MySQL command deadlock recovery

Recover signal, signal-with-start, cancellation and termination commands when MySQL rolls back their owned root transaction after a concurrency conflict. Retries use the existing workflows.storage.transaction_attempts limit.

Successful retry preserves the original runs, histories and deadlines and records each accepted command once. Caller-owned transactions and unrelated database failures keep their original behavior. SQLite writer admission and PostgreSQL policies are unchanged. This does not add SDK HTTP retries or repeat user activities.

Restart long-running application and worker processes after upgrading. A pinned Server image needs its own dependency update; installing this library elsewhere does not change that image.

This compatible patch starts from published 2.5.27. It includes only the focused runtime correction, eight real MySQL regression controls, release notes and exact version metadata. No dependency, schema or draft tracing/Nexus change is included.

The source candidate and independent compatible release candidate pass their database shards, supported Laravel/PHP source upgrades, corpus, quality, unit and coverage gates. Source Sonar passes with zero unresolved PR findings.

Published verification passes all 17 registry/platform and supported Laravel/PHP upgrade jobs. Normal Composer installation on PHP 8.3.35 / Laravel 13.37.0 / MySQL 8.4.5 passes all eight real concurrency controls and 180 assertions. Updating only this package changes the published 2.5.27 baseline's four actual deadlock failures to passes, while preserving all four negative controls. The loaded vendor class matches the exact released source and all other dependency objects remain unchanged.

See #819, source #820 and compatible release #821. The original mixed-load failure remains failed; SDK hosting and affected Server acceptance remain separate.

Don't miss a new workflow release

NewReleases is sending notifications on new releases.