Skip to content

Instantly share code, notes, and snippets.

@sajanv88
Created September 7, 2026 05:15
Show Gist options
  • Select an option

  • Save sajanv88/5163c11f20404a1b3962c36ee8eca605 to your computer and use it in GitHub Desktop.

Select an option

Save sajanv88/5163c11f20404a1b3962c36ee8eca605 to your computer and use it in GitHub Desktop.
How taskQ compares
taskQ vmihailenco/taskq oshankkumar/taskqueue-go
Payload type safety Generics: Task[T]/Handler[T]/Queue[T], compile-time checked Reflection-based task registry, string task names Concrete *Job with a JSON payload
Backends In-memory, Redis Streams, Postgres (SKIP LOCKED) Redis, SQS, IronMQ, in-memory Redis (Postgres/MySQL job-store on the roadmap, not shipped)
Crash recovery Built into every backend (XAUTOCLAIM, Postgres lease expiry) Backend-dependent (SQS/IronMQ visibility timeout) Redis Lua-script atomic dequeue plus visibility timeout
Cross-backend conformance One shared suite (taskqtest) every backend must pass Not present Not present (single backend today)
Middleware Chain() composition: logging, panic recovery, OpenTelemetry Fallback handler for failed messages Not documented
Delayed / scheduled delivery Not yet (roadmap item) — Built in
Multi-step workflows / sagas Yes, via Saga[S] with automatic reverse-order compensation No No
Web dashboard No No Yes: queue/job monitoring, retry/delete from the UI
Maturity New, pre-1.0 ~1.3k GitHub stars; production use (built by the Uptrace team) Early-stage, small
License MIT BSD-2-Clause MIT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment