// 概要
Honker は SQLite の拡張機能および言語バインディングであり、Postgres スタイルの NOTIFY/LISTEN セマンティクス、永続的な pub/sub、およびタスクキューをデータベース内で直接提供します。ビジネスロジックの書き込みとキュー操作を同一トランザクション内でアトミックにコミットできるため、Redis のような外部ブローカーが不要になります。従来のクライアントポーリングに頼らず SQLite のデータバージョンを監視することで、1 桁ミリ秒の反応速度を実現しています。
// 技術解説
Honker は、Postgres スタイルの NOTIFY/LISTEN セマンティクス、永続的な pub/sub、およびタスクキューを SQLite データベースファイル内に直接実装する SQLite 拡張機能であり、マルチ言語ライブラリです。プロセス間通信に単調増加する PRAGMA data_version カウンターを活用することで、Redis や Celery といった外部ブローカーを不要にし、ビジネスロジックとキュー操作を単一のトランザクション内でアトミックにコミットできます。この設計はデータ整合性と運用の簡素化を優先しており、データベースがコミットされるたびにサブスクライバーが起動する「オーバートリガー」のオーバーヘッドを許容することで、複雑なポーリングなしにミリ秒未満の反応時間を実現しています。
// 主要ハイライト
// ユースケース
// クイックスタート
開始するには、使用する言語用の honker パッケージをインストールし(例: 'pip install honker')、ライブラリが提供する open メソッドを使用して SQLite データベースファイルを開きます。その後、キューやストリームを定義し、ライブラリのトランザクションコンテキストを使用して、データベースへの書き込みと同時にタスクのエンキューやイベントのパブリッシュをアトミックに行うことができます。ワーカープロセスについては、claim イテレーターまたは提供されている CLI ワーカーコマンドを使用して、データベースにコミットされたジョブを処理します。