richardknop/machinery

Machinery is an asynchronous task queue/job queue based on distributed message passing.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 44 minutes ago
Added to GitGenius on September 8th, 2026
Created on April 5th, 2015
Open Issues & Pull Requests: 248 (+0)
GitHub issues: Enabled
Number of forks: 933
Total Stargazers: 7,972 (+0)
Total Subscribers: 156 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 228.2 days
Mean response time: 692.5 days
90th percentile: 2487.4 days
Tracked items: 20

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 25
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,032 days
Stale 30+ days: 21
Stale 90+ days: 21

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Machinery is an asynchronous task queue and job queue based on distributed message passing, written in Go.

The tool addresses the need to execute work asynchronously across distributed systems by decoupling task producers from task consumers through message brokers. Tasks are defined as Go functions, registered with the system, and sent to a broker where worker processes consume and execute them. The approach supports multiple broker backends including AMQP, Redis, AWS SQS, GCP Pub/Sub, and DynamoDB, allowing flexibility in infrastructure choices.

Machinery suits projects requiring background job processing, scheduled task execution, or work distribution across multiple workers. The tool is particularly valuable for teams already invested in Go and wanting to avoid external service dependencies. Version 2 is recommended for new projects because it eliminates the need to import dependencies for all supported brokers and backends, importing only those actually in use. The project provides workflow primitives including groups for parallel task execution, chains for sequential execution, and chords for fan-out and fan-in patterns. Periodic task scheduling is supported for recurring work.

Development activity shows consistent maintenance with regular updates addressing issues and feature requests. The project maintains both a legacy version one and an actively developed version two, providing a migration path for existing users while supporting new adopters with a cleaner dependency model. Documentation is comprehensive, covering configuration, task definition, worker setup, and workflow composition through code examples and detailed configuration guides.