russellromney/honker

· databases coding · Source ↗

TLDR

  • Honker brings Postgres NOTIFY/LISTEN-style queues and durable streams to SQLite via a Rust extension and multi-language bindings.

Key Takeaways

  • Implements the transactional outbox pattern: jobs only enter the queue if the surrounding transaction commits successfully.
  • Supports Kafka-style durable streams with transactional publishing, allowing DB writes and event emission in a single atomic operation.
  • Workers can poll the .db-wal file with a stat call every 1ms for near-real-time delivery without running a full SQL query.
  • Adds 20+ custom SQL functions, including notify() and honker_stream_read_since(), callable directly from SQL.
  • Requires WAL mode on the SQLite database; the extension is written in Rust with bindings for Python (and likely other languages).

Why It Matters

  • Brings production-grade queue and stream primitives to SQLite, removing the need for a separate broker like Redis or Kafka in single-file-DB setups.
  • The transactional outbox pattern prevents lost jobs on crash or rollback, a common failure mode in naive queue implementations.
  • Lowers the infrastructure floor: builders can run reliable async workers against a plain .db file with no additional services.

Simon Willison, Simon Willison’s Weblog · 2026-04-24 · Read the original