For those running Go in production at scale, what do you use for distributed task queues?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • work

    Process background jobs in Go

    One of the gocraft/work maintainers here. Gocraft/work is not abandoned; we are just thinking what v2 could become, and working on v2: https://github.com/gocraft/work/issues/120#issuecomment-530615442

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • nsq

    A realtime distributed messaging platform

    I've been using NSQ in production for a number of years now. It's also written in Go and has a first class client library maintained by the devs

  • machinery

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

    Machinery (https://github.com/RichardKnop/machinery) seems to be the most popular out of the box solution. I've played with this in the past and it's worked pretty well but I'm not sure how it handles under serious volume.

  • Asynq

    Simple, reliable, and efficient distributed task queue in Go

    Asynq (https://github.com/hibiken/asynq): Looks promising but not quite at v1.0 yet.

  • gocelery

    Celery Distributed Task Queue in Go

    go-celery (https://github.com/gocelery/gocelery): Celery port in Go. Not much recent activity so a bit worried it's abandoned.

  • cadence

    Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.

    We use cadence https://github.com/uber/cadence

  • gq

    gq is a lightweight scalable message queue backed by the most popular SQL DBs. Add message queue semantics to your application without integrating extra infrastructure.

    If you want something simple https://github.com/mattbonnell/gq

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • rabbit-hole

    RabbitMQ HTTP API client in Go

    We use Rabbitmq with streadway for the client and https://github.com/michaelklishin/rabbit-hole for some management and monitoring tasks.

  • temporal

    Temporal service

    Use ScyllaDB if you need fast inserts but eventual consistency (just remember to set larger batch_size_fail_threshold) or CockroachDB for strong consistency. I assure you, the hardware requirements will be much smaller then with Cassandra.

  • miniqueue

    A simple, single binary, message queue. Supports HTTP/2 and Redis Protocol.

    Have been working on https://github.com/tomarrell/miniqueue, intentionally non distributed though for simplicity

  • docker-compose

    Temporal docker-compose files (by temporalio)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • NSQ: Open-source realtime distributed messaging, billions of messages / day

    1 project | news.ycombinator.com | 9 Jan 2024
  • Understanding NATS.io concepts vs. Kafka - similarities and differences

    2 projects | /r/apachekafka | 4 Mar 2023
  • How to plan and execute a large number of tasks in Go?

    7 projects | /r/golang | 26 Aug 2022
  • NSQ – A realtime distributed messaging platform

    1 project | news.ycombinator.com | 2 Aug 2022
  • Nsq - A realtime distributed messaging platform

    1 project | /r/github_trends | 20 May 2022