What problem does it solve? Building a background job queue without a broker means solving atomic job claiming, crash recovery, and dependency-driven readiness yourself — and each SQL dialect (SQLite, PostgreSQL, MySQL) locks differently, so naive implementations double-dispatch jobs or silently fail on SQLite. ## Core Features & Use Cases - Per-dialect atomic lease: Implements the claim transaction with FOR UPDATE SKIP LOCKED on PostgreSQL and MySQL 8+ versus BEGIN IMMEDIATE on SQLite, with dialect detection and the MySQL isolation-level caveats handled. - Crash-resume and fair scheduling: Covers heartbeat-based lease renewal, stale-lease reclaim, hung-job timeouts, and weighted fair-share allocation across job groups. - Use Case: You need an embeddable, single-box task scheduler where jobs form a dependency DAG and the relational database is the only durable store — for example, orchestrating long-running report-generation jobs in a desktop app backed by SQLite that must also run on PostgreSQL in production. ## Quick Start Use the sql-job-queue skill to build a dependency-driven job scheduler on SQLAlchemy with atomic leasing across SQLite, PostgreSQL, and MySQL.