SQLite용 큐·스트림 확장
russellromney/honker
·2026.04.24 10:50
핵심 내용
honker는 Rust 기반 SQLite 확장으로 Postgres식 NOTIFY/LISTEN과 durable stream을 더했다.
자세히 보기
honker는 Rust로 만든 SQLite 확장과 여러 언어 바인딩으로, SQLite에 Postgres식 NOTIFY/LISTEN 의미론을 더한다.
Python에서는 다음처럼 큐와 스트림을 다룬다.
queue('emails')로 작업 큐를 만들고, 워커가claim()으로 잡은 뒤ack()하는 방식으로 처리한다.stream('user-events')는 트랜잭션 안에서publish(..., tx=tx)해 Kafka-style durable stream처럼 동작한다.
확장은 20개 이상의 커스텀 SQL 함수도 제공한다. 예시로 notify('orders', '{"id":42}')와 honker_stream_read_since('orders', 0, 1000)가 포함된다.
실시간성은 WAL mode에 기대며, 워커는 .db-wal 파일을 1ms 간격으로 stat해 무거운 SQL 쿼리 없이 변경을 감지한다. 핵심은 transactional outbox pattern이다. 트랜잭션이 성공적으로 커밋된 경우에만 작업이 큐에 들어가도록 보장한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.