russellromney/honker
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-walfile with astatcall every 1ms for near-real-time delivery without running a full SQL query. -
Adds 20+ custom SQL functions, including
notify()andhonker_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
.dbfile with no additional services.
Simon Willison, Simon Willison’s Weblog · 2026-04-24 · Read the original