On this page
Overview
Asynq is a distributed task-queue library for Go. Clients enqueue tasks into Redis-backed queues and Servers process them with worker goroutines. It provides retries, scheduling, priorities, deadlines, deduplication, periodic tasks, Sentinel support, and metrics.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Separate task producers and workers through a Client/Server model
Producers enqueue task types, payloads, and options through Client, while Server and Handler implementations process tasks concurrently across multiple worker processes or machines.
Sources: [2]
Configure retries, scheduling, priorities, deduplication, and time limits as queue policy
Failed-task retries, scheduled and periodic tasks, weighted or strict priorities, unique-task deduplication, per-task timeouts and deadlines, and task aggregation are available.
Sources: [2]
Best fit
Fits background jobs such as email, media processing, and external integrations outside request paths
It is useful for Go backends that need to move expensive or retryable work off HTTP request paths and distribute it through Redis to multiple workers.
Sources: [2]
Before adoption
v0.26.0 requires Go 1.24; design for at-least-once execution and pre-v1 API changes
The v0.26.0 go.mod declares Go 1.24 and the release explicitly raises the minimum to Go 1.24. Tasks have at-least-once execution semantics, so handlers should be idempotent. Some Lua scripts may not work with Redis Cluster, and the v0 API can still change incompatibly before v1.
Official sources
- [1]hibiken/asynq — GitHub repository(2026-10-06)
- [2]Asynq v0.26.0 — README(2026-10-06)
- [3]Asynq v0.26.0 — go.mod(2026-10-06)
- [4]Asynq v0.26.0 release(2026-10-06)
- [5]Asynq MIT license(2026-10-06)
Supplemental curator note
Asynq separates background jobs into a Redis-backed queue with retries, scheduling, priorities, and worker concurrency. Delivery is at least once, so handlers must be designed to tolerate duplicate execution.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/hibiken/asynq.git - 2
Enter the repository
cd asynq - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
13,748 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 73
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- task-queue
- go
- background-jobs
- redis
- asynchronous-tasks
- worker-pool
- golang
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- RQ10,693 Stars
2 shared tag(s) · 1 shared category(s)
run Python background jobs through lightweight Redis or Valkey queues and workers
Python - Dramatiq5,326 Stars
2 shared tag(s) · 1 shared category(s)
move Python background tasks to RabbitMQ or Redis with actors and worker processes
Python - Go139,267 Stars
2 shared tag(s) · Same language
Build servers and CLIs as compact binaries with goroutines, channels, modules, and a standard toolchain
Go - gRPC-Go23,092 Stars
2 shared tag(s) · Same language
implement typed Go service RPCs over HTTP/2 with the gRPC runtime
Go - Sarama12,523 Stars
2 shared tag(s) · Same language
cover Kafka producers, consumer groups, administration, and transactions from Go
Go - kafka-go8,638 Stars
2 shared tag(s) · Same language
use high-level Reader and Writer APIs or drop down to a low-level pure-Go Kafka connection
Go
Report incorrect information
Tell us if any listing information is incorrect or outdated.