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이다. 트랜잭션이 성공적으로 커밋된 경우에만 작업이 큐에 들어가도록 보장한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.