Hatchet is a free, open source orchestration & scheduling project written in Go and released under MIT. It has 7,957 GitHub stars, 504 forks and 135 open issues, and was last pushed 10 hours ago. On this registry it ranks #25 of 64 tracked projects in Orchestration & Scheduling, with 5 head-to-head comparisons available. It gained 31 stars over the last 6 tracked days.

What is Hatchet?

Hatchet is an MIT-licensed, Go-based orchestration engine for background tasks, AI agents, and durable workflows, built for teams that need reliable queueing, retries, and observability while writing workers in Python, TypeScript, Go, or Ruby.

What it is

Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. It provides a full stack for queuing, automatic retries, durability, real-time monitoring, alerting, and logging, and it can be consumed either as a managed service through Hatchet Cloud or as a self-hosted deployment. The engine is written in Go and released under the MIT licence, with client libraries covering Python, TypeScript, Go, and Ruby.

The concrete problem it addresses is the gap between a plain job queue and a system that must survive failure and stay observable. Hatchet replaces the ad hoc combination of a queue plus separate retry, scheduling, and monitoring layers by using Postgres as the durability layer for both the task runtime and the observability system. That single-storage design is what makes the project comparatively easy to self-host, and it keeps task state and monitoring data in one place an operator already knows how to run.

Key capabilities

  • Background tasks defined as simple functions, supporting both fire-and-forget and fire-and-wait execution with subscriptions.
  • Configurable retry policies for tasks, including optional exponential backoff.
  • Cron jobs and scheduled runs for executing tasks at a point in the future.
  • Task routing by strict conditions such as worker labels, plus weighted scheduling through worker affinity.
  • Event-based triggering with listeners and durable event waits, alongside webhook-based triggering for upstream data sources.
  • Durable tasks for fault-tolerant, long-running workflows that recover from failure, and DAG-based workflow orchestration.
  • TypeScript client distributed as the @hatchet-dev/typescript-sdk package on npm, with the Go packages published under github.com/hatchet-dev/hatchet.

Who uses it and how

  • Teams that need horizontal scalability and correctness for long-running workflows such as AI agent pipelines can define each step as a durable task and let Hatchet manage retries across workers.
  • Python and TypeScript application teams can add Hatchet workers alongside existing services, since the topic list covers Python, TypeScript, Node.js, FastAPI, and Go.
  • Deployment is split between Hatchet Cloud, which provides a fully deployed platform for evaluation, and a self-hosted option documented for production operators.
  • Event-driven and distributed system builders can wire external sources through webhooks and events rather than polling, using durable event waits to suspend workflow progress until a signal arrives.
  • Scheduled work such as recurring cron runs fits teams replacing hand-rolled schedulers, with routing rules directing jobs to specific workers by label or affinity.

Getting started

The documented local path installs the Hatchet CLI with curl -fsSL https://install.hatchet.run/install.sh | bash, verifies it with hatchet --version, and boots the stack with hatchet server start, which requires Docker installed locally. The README recommends signing up for Hatchet Cloud even when self-hosting is the eventual plan, so a fully deployed instance can be inspected first.

How it compares

The facts provided name no comparable or paid products that Hatchet replaces, so no like-for-like contrast can be drawn on licence, hosting, data ownership, or cost model. On that basis Hatchet stands alone in this registry among the products described in the supplied material, and the only internal distinction the README makes is architectural rather than competitive: its use of Postgres as the durability layer for both runtime and observability.

When to use it — and when not to

A self-hoster takes on running Postgres as the durability layer and Docker for the local server, so teams without database operations capacity should prefer Hatchet Cloud or a different tool. The project carries 135 open issues and the README excerpt is truncated mid-sentence in the workflow section, so anyone evaluating DAG orchestration should read the full documentation at docs.hatchet.run before committing. It suits teams that value correctness, reliability, horizontal scalability, and observability as requirements rather than extras, and it is a poor fit for anyone wanting a queue with no operational footprint at all.

project readme (upstream, from github) — read inline

An orchestration engine for background tasks, AI agents, and durable workflows

Docs License: MIT Go Reference NPM Downloads

Discord Twitter GitHub Repo stars

Hatchet Cloud · Documentation · Website · Issues

What is Hatchet?

Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. It supports applications written in Python, TypeScript, Go and Ruby, and can be used as a service through Hatchet Cloud or self-hosting. Hatchet provides a full platform for queuing, automatic retries, durability, real-time monitoring, alerting, and logging.

Get started quickly

The fastest way to get started with Hatchet is signing up for Hatchet Cloud to try it out! We recommend this even if you plan on self-hosting, so you can have a look at what a fully-deployed Hatchet platform looks like.

To run Hatchet locally, the fastest path for setup is to install the Hatchet CLI (on MacOS, Linux or WSL) - note that this requires Docker installed locally to work:

curl -fsSL https://install.hatchet.run/install.sh | bash
hatchet --version
hatchet server start

To view full documentation for self-hosting and using cloud, have a look at the docs.

When should I use Hatchet?

You can use Hatchet for running background tasks, AI agents, or other types of long-running workflows. It is designed to be a feature-complete solution for systems where correctness, reliability, horizontal scalability, and observability are essential. From a technical perspective, it differs from other solutions in that it uses Postgres as a durability layer for both the task runtime and the observability system, making it particularly easy to self-host.

For some end-to-end examples of workflows you can build with Hatchet, check out our cookbooks.

Hatchet Features

Background Tasks
Task orchestration and workflows
Scale
  • Priority so that critical tasks can run before tasks which aren't latency sensitive, like backfill jobs
  • Rate limiting to deal with third-party APIs, or even to enforce per-user rate limits using dynamic rate limits
  • Fair scheduling using Hatchet's concurrency policies, which can set a concurrency limit for tasks based on dynamic keys
  • Worker slots for ensuring that workers cannot take on more work than they can handle
Monitoring, observability, and management
  • Real-time web UI with alerting, monitoring, and logging
  • OpenTelemetry (using Hatchet's built-in collector or external destinations)
  • Prometheus metrics
  • Multi-tenant by default, so a single Hatchet instance can support multiple teams
  • Users and roles
Hatchet Cloud features
  • Autoscaling and pay-as-you-go plans
  • Multi-region deployments
  • SSO
  • Improved performance for monitoring, logging, and observability

Documentation

The most up-to-date documentation can be found at https://docs.hatchet.run.

Community & Support

  • Discord - best for getting in touch with the maintainers and hanging with the community
  • Github Issues - used for filing bug reports
  • Github Discussions - used for starting in-depth technical discussions that are suited for asynchronous communication
  • Email - best for getting Hatchet Cloud support and for help with billing, data deletion, etc.

Hatchet vs...

Hatchet vs Durable Execution Platforms (Temporal, DBOS)

Hatchet's durable tasks feature is a drop-in replacement for Temporal or DBOS workflows. You also get:

  • End-to-end observability of durable tasks using OpenTelemetry, monitoring and logging
  • Features built for running workflows at scale, such as rate limiting, complex routing, and worker-level slot control
  • Multi-tenancy, users and roles supported out of the box

In addition to making durable execution easier to use, Hatchet can also be used as a general-purpose queue, a DAG-based orchestrator, a durable execution engine, or all three, allowing teams to centralize their async and background processing in a single platform.

Hatchet vs Task Queues (Celery, BullMQ)

Traditional task queues like BullMQ and Celery trade off durability for throughput. Tasks persist on the broker (typically Redis or RabbitMQ) while the task is executing, but are not persisted afterwards. This makes it difficult to build complex workflows, as there is no persistent intermediate state. It also makes it difficult to recover and replay tasks which failed and were removed from the queue, resulting in custom admin tooling to work with these libraries at scale.

On the other hand, Hatchet is a durable task queue, meaning it persists the history of all executions (up to a defined retention period), which allows for easy monitoring, debugging and durable task features. Hatchet's durability features add some overhead: while Hatchet has been load-tested up to 10k tasks/second, it consumes more resources than a system built on Redis or RabbitMQ, which can reach much higher throughput.

Hatchet vs DAG-based platforms (Airflow, Prefect, Dagster)

The

readme truncated — read the full docs on github

Frequently asked questions

Is Hatchet free to use?

Hatchet is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Hatchet do?

Distributed task queue for background jobs and workflows

What is Hatchet written in?

Hatchet is primarily written in Go. Its source is publicly available at https://github.com/hatchet-dev/hatchet, and it has 7,957 GitHub stars.