Spoold: Durable Outbound HTTP Delivery Without a Database
Spoold is a lightweight Go daemon that gives outbound HTTP requests durable, at-least-once delivery without a database or message broker.
Spoold is a new open-source Go daemon that adds durability to outbound HTTP calls without requiring Postgres, Redis, Kafka, or a cloud broker. It journals each delivery to disk before acknowledging it, then retries in the background across process restarts, reboots, and network failures — something curl --retry cannot do, since its retry state dies with the submitting process.
The design centers on a single owner-only, append-only journal with deterministic replay and online compaction, idempotent enqueueing with conflict detection, lease-based workers to prevent duplicate delivery, and SSRF-aware dialing that blocks private and loopback targets by default. It exposes a strict JSON API and Prometheus metrics, with zero runtime dependencies beyond the Go standard library.
It targets a narrow but real niche: cron jobs that must report completion after a reboot, edge agents that survive hours offline, and appliances that need to retain callbacks without shipping a database. It is explicitly not meant for enqueueing that must be atomic with an application transaction, or for queues that must stay highly available across multiple hosts — a real broker remains the right tool there.
Releases are signed with Sigstore/Cosign and ship with SBOMs and build provenance, alongside an install script, container images, and a spoolctl CLI for management.