Start with the SDK, deploy a durable worker, and learn how to recover tool calls while accounting for duplicate side effects.
Decide when to retry HTTP failures, respect Retry-After, and classify provider errors in TypeScript and Python workers.
Exponential backoff with jitter in TypeScript and PythonCalculate bounded retry delays, apply jitter and provider minimum waits, and configure a snapshotted GetRatchet custom policy.
How idempotency keys prevent duplicate API side effectsDesign stable operation identities and destination-side deduplication for payments, emails and writes under at-least-once execution.
Durable background jobs for Vercel applicationsEnqueue work from Vercel and run customer-owned workers on Railway or another host, with scoped keys and recoverable execution.
Circuit breaker versus retry policyUnderstand retry schedules, failure thresholds, cooldown and half-open probes, and how circuit gates affect failed workflow recovery.
No. Your application runs the agent. GetRatchet records and manages tool calls, and your worker runs registered durable handlers.
No. wrap() runs a local function in your process. Use enqueue() and a separate worker for crash recovery.
No. Durable execution is at least once. Pass a stable idempotency key to the destination for payments, writes, and email.
Check worker heartbeat, exact handler version, key scope, service pause, circuit state, and database health.
No. An owner or admin reviews the current dry-run plan and acknowledges duplicate risk. Model output cannot schedule work.
Retention depends on the plan: Free 7 days, Basic 30 days, Pro 90 days by default with a 30–365 day range. Unfinished work is kept.