← All systems
Job frameworkAdapter in this repoDevelopment snapshot

Awa

Typed Rust and Python jobs with segmented storage and guarded attempts.

API / SDK surfaceRust · Python
Inspected snapshot0.7.0-alpha.1 · development main
Sources checked2026-10-23
License at snapshotMIT OR Apache-2.0

View pinned source / version b9341ae5718f · The inspected main revision is newer than both the historical benchmark and released 0.6 packages. Development features are not claims about every release.

What this system is built around

A Rust and Python job framework using PostgreSQL for enqueue, worker claims, recovery and operational state. The inspected development revision uses segmented queue storage and claim receipts.

A useful starting point

Evaluate when Rust and Python workers need shared PostgreSQL jobs with transactional enqueue and operational controls. Test the deployed release, database settings and handler recovery behavior; the lab and old benchmark use different snapshots.

Editorial fit, based on the cited design. Verify against your workload.

Semantics & operating model

Concise claims with their scope intact. “Not verified” means this review did not establish the answer.

Claiming & concurrency

Qualified

Per-queue worker permits and an optional weighted pool govern local runtime capacity. Do not interpret global_max_workers as an automatically fleet-wide limit. Multiple claimers share one runtime’s queue permits.

Transactional enqueue

Documented

insert_with accepts the application’s PostgreSQL transaction executor. Business writes and enqueue can share one commit. The ordinary handler’s completion is separate; the ADR-042 caller-owned handler API is not implemented at this snapshot.

Crash recovery & retries

Documented

Heartbeat staleness and hard deadlines close abandoned attempts for retry/failure handling. Completion validates the open attempt identity; a rescued handler can still run late. Delivery is at least once.

Delayed & recurring work

Documented

Future run_at, retry backoff and snooze use deferred storage. A maintenance leader drives periodic/cron schedules, including timezones; a live worker fleet performs scheduling and promotion.

Uniqueness / deduplication

Qualified

Insert uniqueness is configurable by kind, queue, arguments and selected job states. It controls enqueue identity, not exactly-once handler execution or external effects.

Postgres extension required

Not required

Awa installs SQL schemas and migrations on PostgreSQL, without a dedicated queue extension. Worker runtimes own maintenance; pg_cron is not required for its scheduler.

Operator interface

Documented

The awa serve operational interface includes queues, jobs, cron and dead-letter management. Runtime and CLI versions must match the supported schema/upgrade contract.

Tradeoffs to carry into a test