Durable queues, streams, pub/sub, and a cron scheduler – inside your SQLite file

· databases coding · Source ↗

TLDR

  • Honker adds durable queues, pub/sub, streams, and a cron scheduler as a SQLite loadable extension, with no broker or second datastore required.

Key Takeaways

  • Enqueue jobs atomically with business writes in the same transaction; rollback drops both the order row and the job.
  • Cross-process wake latency is ~0.7 ms p50; detection uses PRAGMA data_version polled every 1 ms (~3 µs read), not a kernel file watcher.
  • One background thread fans wake signals to all subscribers, so listener count scales without added query cost.
  • Bindings for Python, Node, Rust, Go, Ruby, Bun, and Elixir all share one on-disk .db format via a plain SQLite loadable extension.
  • Supports Huey-style task decorators with retries and timeouts; targets projects already using SQLite as primary datastore (Bluesky PDS, Turso, LiteFS).

Hacker News Comment Review

  • Skepticism about the polling approach: one commenter challenged the claim that busy-polling data_version every millisecond is preferable to a kernel file watcher, calling the framing oversold.
  • Honker’s SQLite-queue niche is narrowing: Oban, cited in the source as Postgres-only gold standard, now supports SQLite, and Litestack pursued a similar Rails path before being abandoned when Rails added native SQLite support.

Notable Comments

  • @arlobish: Oban now supports SQLite, contradicting honker’s own docs that position it as Postgres-only competition.

Original | Discuss on HN