All packsWebhook Durability & ReplaySolve
postgres for update skip locked webhook worker queue
N workers, no broker, no lease table -- SKIP LOCKED is the entire scheduler
FOR UPDATE SKIP LOCKED lets multiple workers claim pending deliveries with no queue broker, no Redis and no lease table, as long as ordering is guarded somewhere else (D9).
This is one of the things Webhook Durability & Replay already handles. Receive webhooks without losing, duplicating or misordering them when the sender retries.
Is this you?
Building a delivery queue with an external broker or a hand-rolled lease-and-heartbeat table adds real operational surface -- a Redis instance, a lease-expiry job -- to solve a problem Postgres already solves at the row level, and adding per-resource serialization on top of it buys nothing once ordering is already guarded by a watermark (D7).
Why this one is easy to get wrong
A queue broker is the default reach for "multiple workers processing the same table without stepping on each other," because that's the shape most job-queue tutorials assume from the start -- SKIP LOCKED is a Postgres-specific locking clause that doesn't come up unless someone specifically already knows concurrent workers over a plain table is a solved problem in Postgres.
What you get instead
D9 claims a batch with one UPDATE ... FROM (SELECT ... FOR UPDATE SKIP LOCKED LIMIT $1) query -- N workers run with no coordination beyond that. Nothing serializes deliveries per resource, deliberately: snapshot handlers are already watermark-guarded so a loser is correctly refused as stale, and accumulate handlers are commutative, so lock order is fixed only enough to prevent a deadlock between the resource_state row and the effects insert.
Source: ARCHITECTURE.md D9 — checkable in the pack you receive
How you actually use this
You don’t install a library or wire up an SDK. Your own coding agent builds the code in your project, and you keep it — no runtime dependency on us.
Step 1
Download and unzip
You get a folder: the docs that tell an agent what to build, a starting skeleton, and the test suite that decides when it's done.
Step 2
Open it in Claude Code or Cursor
Point your coding agent at the folder. Nothing to install, no account with us, no API key.
Step 3
Paste one prompt
The pack contains the exact prompt. Paste it as your first message and leave it alone — it works through the build itself, choosing a cheaper or stronger model per task.
Step 4
Run ./verify.sh
One command. It prints a pass or fail for every check. Green means the build is done — the same script we ran to produce the receipt on this page.
Typical build: about 40 minutes of your agent working, mostly unattended. Then you integrate the working module into your app the way you would any code you’d written yourself.
Why you can believe this
3 of 3 runs passedWe ran this pack from an empty folder 3 times and published exactly what happened — every check, the model, the token cost, the wall time. Not a testimonial, and not our opinion: the same verify.sh you run yourself. Read the full receipt →
Related problems
Webhook Durability & Replay
Catch the unique violation without a SAVEPOINT and the whole transaction is already dead
Webhook Durability & Replay
Increment the retry counter at claim time, or a crash loses the count
Scheduling & Availability Core
Two READ COMMITTED transactions can both see the same free slot and both win