Skip to content

Releases: LindqvistMartin/sluice

Release list

v0.1.0

Choose a tag to compare

@LindqvistMartin LindqvistMartin released this 30 Jun 03:47

First tagged release: a single-binary webhook fan-out daemon with a durable, on-disk queue and no broker to run alongside it.

Highlights

  • Inbound webhook endpoint routed by path and header match, behind per-IP rate limiting and a body-size cap.
  • Every accepted event is persisted to a local SQLite DLQ before it is acknowledged, then fanned out to every configured target with its own timeout, retry budget, and full-jitter backoff.
  • Failed deliveries are rescheduled on disk and survive a restart. A crashed worker's in-flight work is recovered via leasing rather than lost or duplicated, and deliveries that exhaust their budget are parked, not dropped.
  • Retries are classified by response. 5xx, 429, 408, and transport errors are retried; other 4xx and 3xx park immediately. A Retry-After on a 429 or 503 is honoured at the target's stated delay, bounded against a hostile value.
  • sluice dlq list and sluice dlq retry inspect and replay parked deliveries, with the daemon up or down.
  • Opt-in Prometheus metrics on a separate address, with per-target delivery and failure counters.

Full list in the CHANGELOG; design decisions in the ADRs.

Install

Download a binary for your platform below and verify it against checksums.txt:

sha256sum -c checksums.txt --ignore-missing
chmod +x sluice_0.1.0_linux_amd64
./sluice_0.1.0_linux_amd64 -version

Or build from source with Go 1.26+:

go install github.com/LindqvistMartin/sluice/cmd/sluice@v0.1.0

Then see the Quickstart to configure and run it, or to build the distroless container image.