Skip to main content

Module unblock

Module unblock 

Source
Expand description

Unblock scanner for budget/quota/capability-blocked executions.

Scans ff:idx:{p:N}:lane:<lane>:blocked:{budget,quota,route} per execution partition. For each blocked execution, re-evaluates the blocking condition. If cleared, calls FCALL ff_unblock_execution.

Cross-partition budget check is cached per scan cycle (MANDATORY — without it, 50K blocked executions = 50K budget reads).

Capability sweep reads the union of non-authoritative worker cap sets (ff:worker:*:caps — written by ff-sdk::FlowFabricWorker::connect) ONCE per scan cycle and uses it to decide whether a waiting_for_capable_worker execution has a matching worker. This is best-effort: caps sets may be slightly stale (TTL-less STRING, overwrite on restart), but the promotion path is self-correcting — a promoted execution that still can’t be claimed gets re-blocked on the next scheduler tick. RFC-009 §7.5 documents the v1 sweep approach and defers connect-triggered sweeps to V2.

MUST skip paused_by_flow_cancel — only cancel_flow clears that.

Reference: RFC-008 §2.4, RFC-009 §7.5, RFC-010 §6

Structs§

UnblockScanner