awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jrallison avatar

jrallison/go-workers

0
View on GitHub↗
1,383 stars·165 forks·Go·MIT·13 views

Go Workers

Go-workers is a background job processor for Go applications that coordinates asynchronous task execution using Redis queues. It implements the Sidekiq-compatible wire protocol and payload structures, allowing interoperability with existing background processing ecosystems and clients.

The system manages task distribution through atomic list operations on a shared data store to guarantee reliable message delivery and prevent lost tasks during abrupt worker failures. It features configurable concurrency limits to control throughput per queue by dispatching incoming tasks across bounded synchronization channels, alongside automatic failure retry polling that catches runtime panics and schedules failed messages back into persistence layers according to backoff policies.

Execution lifecycles are customizable through middleware-driven pipelines that intercept job handling events using nested function wrappers. Operational visibility and system lifecycle management are supported via an embedded HTTP endpoint exposing live statistics, alongside signal-based graceful shutdowns that drain active queues and complete running workloads before process termination.

Features

  • Redis-Backed Queues - Coordinates background task distribution by reading and writing job payloads through atomic list operations on a shared data store.
  • Redis-Backed Background Job Libraries - Executes asynchronous background tasks concurrently using Redis as the persistence store and message broker.
  • Automated Job Retries - Automatically catches failed task executions and schedules subsequent retries according to predefined error handling policies.
  • Background Job Processing - Executing asynchronous tasks concurrently with adjustable worker limits per queue to offload heavy application workloads.
  • Reliable Message Delivery - Guarantees message delivery and prevents lost tasks during abrupt worker failures by using atomic list operations.
  • Background Task Processing - Executes asynchronous tasks concurrently with adjustable worker limits per queue to offload heavy application workloads.
  • Background Job Processors - A task processing framework for Go applications that supports concurrency limits, retries, and custom middleware.
  • Composable Middleware Pipelines - Intercepts job handling lifecycle events through nested function wrappers that execute custom cross-cutting logic before and after task completion.
  • Concurrency Limiting - Controls worker throughput per queue by dispatching incoming tasks across bounded synchronization channels to optimize resource utilization.
  • Sidekiq-Compatible Protocols - Implements the Sidekiq-compatible wire protocol and payload structures to allow full interoperability with existing ecosystem clients.
  • Automatic Task Retries - Catches runtime panics during task execution and schedules failed messages back into persistence layers according to predefined backoff policies.
  • Graceful Shutdowns - Listens for operating system signals to pause new work and safely finish active jobs before terminating.
  • Instance Graceful Shutdowns - Listens for operating system interrupt signals to drain active queues and safely complete running workloads prior to process termination.
  • Worker-Level Concurrency Control - Allows adjusting worker concurrency levels independently for each queue to optimize resource usage and throughput.
  • Job Middleware - Applies custom middleware around job processing to run custom logic before and after each task handles a message.
  • Wire-Compatible Handlers - Parses and generates JSON payload structures matching established ecosystem conventions to allow interoperability with existing background processing clients.
  • Background Job Dashboards - Provides an embedded HTTP server delivering live metrics and status information about currently running background jobs.
  • Background Job Monitoring - Exposes operational metrics detailing current worker activity and job statuses for complete operational visibility.
  • Server Metrics - Exposes live operational statistics and internal worker health metrics over an embedded web endpoint for external monitoring systems.

Star history

Star history chart for jrallison/go-workersStar history chart for jrallison/go-workers

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Go Workers

Similar open-source projects, ranked by how many features they share with Go Workers.
  • inngest/inngestinngest avatar

    inngest/inngest

    5,499View on GitHub↗

    Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer

    Go
    View on GitHub↗5,499
  • resque/resqueresque avatar

    resque/resque

    9,480View on GitHub↗

    Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as a distributed task processor and queue manager, allowing long-running work to be moved out of the main request cycle. The system executes background jobs in isolated child processes to prevent memory leaks and provides a web-based dashboard for monitoring queue depths, worker activity, and failed job statistics. Capability areas include distributed worker coordination via signals, error handling with job retry mechanisms, and priority-ordered queue management. It also suppor

    Rubyasynchronous-tasksasynctaskbackground-jobs
    View on GitHub↗9,480
  • automattic/kueAutomattic avatar

    Automattic/kue

    9,437View on GitHub↗

    Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and processing background work. It stores job metadata and state in Redis lists and sorted sets, enabling persistent, in-memory operations with configurable concurrency control and priority-sorted processing. The library includes a RESTful HTTP API for managing jobs and a web-based monitoring dashboard for inspecting job status, progress, and logs. The system distinguishes itself through its event-driven worker model, where workers listen for job events via Redis pub/sub and process j

    JavaScriptjob-queuepriority-queueworker-queue
    View on GitHub↗9,437
  • taskforcesh/bullmqtaskforcesh avatar

    taskforcesh/bullmq

    8,432View on GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    View on GitHub↗8,432
See all 30 alternatives to Go Workers→

Frequently asked questions

What does jrallison/go-workers do?

Go-workers is a background job processor for Go applications that coordinates asynchronous task execution using Redis queues. It implements the Sidekiq-compatible wire protocol and payload structures, allowing interoperability with existing background processing ecosystems and clients.

What are the main features of jrallison/go-workers?

The main features of jrallison/go-workers are: Redis-Backed Queues, Redis-Backed Background Job Libraries, Automated Job Retries, Background Job Processing, Reliable Message Delivery, Background Task Processing, Background Job Processors, Composable Middleware Pipelines.

What are some open-source alternatives to jrallison/go-workers?

Open-source alternatives to jrallison/go-workers include: inngest/inngest — Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background… resque/resque — Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as… automattic/kue — Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… mperham/sidekiq — Sidekiq is a Ruby background processing framework and asynchronous task runner. It functions as a Redis-backed… contribsys/faktory — Faktory is an open-source work server that queues, dispatches, and manages background jobs across multiple programming…

Curated searches featuring Go Workers

Hand-picked collections where Go Workers appears.
  • Task worker configurations