@resvary/worker
v1.2.0
Published
Durable outbox delivery worker for Resvary
Readme
@resvary/worker
At-least-once delivery for Resvary credit outbox events. Receivers must deduplicate by x-resvary-event-id before applying side effects.
npm install @resvary/worker
DATABASE_URL=postgres://... \
RESVARY_WEBHOOK_URL=https://example.com/webhooks/resvary \
RESVARY_WEBHOOK_SECRET=replace-me \
npx resvary-worker runDefaults: batch 25, lease 30 seconds, webhook timeout 10 seconds, maximum 8 attempts, exponential backoff with jitter. HTTP 2xx succeeds. Network failures, timeout, 408, 429, and 5xx retry. Other 4xx responses move directly to dead letter.
Optional health endpoints are enabled with RESVARY_HEALTH_PORT. Use /live for process liveness and /ready for database and schema readiness.
resvary-worker dead-letter list
resvary-worker dead-letter requeue EVENT_ID
resvary-worker maintenanceRun maintenance from a scheduler with RESVARY_PROJECT_ID set. Each invocation expires at most 100 overdue reservations and 100 due credit lots by default. Change the bound with RESVARY_MAINTENANCE_BATCH_SIZE; repeat the command until both counts reach zero during a backlog drain.
Run each replica with a unique RESVARY_WORKER_ID, or omit it to generate a process-unique ID. JSON logs contain event identifiers and sanitized errors, never webhook secrets or event payloads.
