Reliable Postgres-native processing

outlabsTaskq

A SQL-first task queue for Python systems, with typed claims and settles, workflows, schedules, and an optional FastAPI facade for credential-free workers.

outlabsTaskq
Public pre-release · MIT

A job queue in your Postgres.

outlabsTaskq is a SQL-first task queue for Python fleets: claim, fencing, and retry live in PL/pgSQL; the typed client and optional FastAPI facade are transport only.

Postgres FastAPI SKIP LOCKED Pydantic HTTP facade MIT
OutlabsTaskq mark Your DB · Your fleet

SQL-first

PL/pgSQL functions are the contract. Python, HTTP, and psql are equal clients.

Typed settles

ok / already_settled / lost — a dropped HTTP response no longer discards finished work.

Optional facade

Credential-free workers. Auth is injected; outlabs-auth is optional.

Configurable, simple

Rich defaults on the queue row; tiny knobs on the worker process.

Technical surface

Correctness in the database.

FOR UPDATE SKIP LOCKED claims

attempt_id fencing on every settle

Typed enqueue (created / existed)

Snooze and cancel without burning budget

Per-resource concurrency limits

Redrive for failed / poison jobs

Enqueue + worker Python 3.12+
from taskq import Task, TaskQ, TaskRegistry

DOUBLE = Task(name="demo.double", queue="demo", …)
registry = TaskRegistry((DOUBLE,))

tq = TaskQ.from_dsn(DATABASE_URL, registry=registry)
result = await tq.enqueue(DOUBLE, {"value": 3})
# result.status in {"created", "existed"}

# taskq worker --dsn … --registry tasks:registry --queue demo

Current status

outlabsTaskq is available as a public pre-release. It includes the SQL kernel, typed client, worker and CLI, HTTP facade, follow-ups, workflows, schedules, and optional authentication. Documentation lives at taskq.outlabs.io.

© 2026 OutLabs LLC. All rights reserved.