bunqueue v2.8.51
blog · release
bunqueue v2.8.51
Production hardening for atomic cross-SDK flows, dependency completion durability and fail-closed release gates.
Production hardening for atomic cross-SDK flows, dependency completion durability and fail-closed release gates. The release adds executable invariant, mutation and real-broker E2E coverage for every official SDK while preserving the existing wire protocol.
To install bunqueue v2.8.51
Section titled “To install bunqueue v2.8.51”bun add bunqueue@2.8.51npm install bunqueue@2.8.51To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestFlowProducer and SDKs
Section titled “FlowProducer and SDKs”- All six external SDKs now preallocate complete flow graphs and commit them
with one broker-side
PUSHFcommand. Tree, bulk, chain and fan-in builders validate unsupported lifetimes, caller-owned topology, reserved metadata, duplicate IDs and the broker’s returned ID/queue snapshot before exposing a result. - Legacy SDK
UpdateParentcalls remain compatible when a declared child finishes before the backpatch. Completed, active, failed andremoveOnCompleteraces update only the child’s ownership; parent topology and scheduling never transition twice. Durable DLQ data and theflow_failuresoutbox are re-keyed transactionally, retaining the original failure reason across restart. - Each SDK now runs deterministic, shrinkable generated invariants with its native property framework: fast-check, Hypothesis, Eris, Rapid, proptest or StreamData. Separate pinned mutation campaigns challenge the pure planners and committed-snapshot validators with StrykerJS, mutmut, Infection, Gremlins, cargo-mutants and Muex.
- Every SDK carries a language-specific invariant reference and contributor instructions. Its README includes runnable atomic-flow examples and the exact property, mutation, real-broker E2E and isolated sandbox commands.
- Flow dependency promotion now checkpoints state/timeline before workers are
notified.
removeOnCompleteACK, optimized ACKB and late stall ACK paths atomically replace the removed child with a payload-free SQLite completion proof. Recent unreferenced proofs remain FIFO-bounded; proofs owned by live waiting parents are pinned until the final reverse edge is durably released. Recovery reconstructs ownership before pruning—even when the configured cap shrinks—never trusts an orphan result row as completion, preserves already-promoted parents after proof eviction, and prevents a reused custom ID from inheriting an older generation’s completion.
- The six-language SDK workflow is now a reusable, fail-closed dependency of the main quality gate. Version checks, binaries, container publication and GitHub releases cannot run unless core, documentation and every SDK job succeeds; a structural regression suite mutation-checks each release-DAG edge.
- TypeScript SDK publication is an explicit manual workflow with a requested
version, current-
origin/mainenforcement, frozen lockfile, package-content validation, provenance, preflight registry/tag checks and tag creation only afterbun publishsucceeds. - Scheduled/manual SDK mutation jobs use pinned runtimes and mutation engines; the ordinary SDK gate continues to run the faster generated properties on every release-capable change.