Repolode
hatchet-dev

hatchet-dev/hatchet

An orchestration engine for background tasks, AI agents and durable workflows, with Python, TypeScript, Go and Ruby SDKs and Postgres as its durability layer.

Open-source alternative to:Temporal

Stars
8,158
Forks
523
Open issues
141
Last commit
10 hours ago

What is it?

Hatchet is a platform for orchestrating background tasks, AI agents and long-running durable workflows. Applications written in Python, TypeScript, Go or Ruby can run on Hatchet Cloud or be self-hosted. It covers queuing, automatic retries, durability, real-time monitoring, alerting and logging in one system.

Hatchet uses Postgres as the durability layer for both the task runtime and the observability data, which keeps self-hosting simple. Tasks can be one-off functions with fire-and-forget or fire-and-wait modes, cron jobs and scheduled runs, or durable tasks that pause and resume on durable sleep or event waits. DAG-based workflows are available for data pipelines and simpler multi-step jobs.

For scale, it offers priorities, rate limits including dynamic per-key limits, concurrency policies for fair scheduling, and worker slots that cap how much work each worker accepts. It is multi-tenant by default and exports OpenTelemetry traces and Prometheus metrics.

Key features

  • 01Background tasks with fire-and-forget or fire-and-wait modes
  • 02Automatic retries with optional exponential backoff
  • 03Durable tasks and DAG workflows that pause and resume on events or sleep
  • 04Cron jobs, scheduled runs and webhook-triggered tasks
  • 05Rate limiting, priorities and fair scheduling with concurrency policies
  • 06OpenTelemetry and Prometheus integration with a built-in web UI

Use cases

  • Running background jobs and retries for a web application
  • Orchestrating long-running AI agent workflows that must survive failures
  • Building event-driven pipelines with rate-limited calls to third-party APIs
  • Replacing Temporal or DBOS-style durable execution in a self-hosted setup

Quick start

  1. 1

    Install the Hatchet CLI using the official install script (requires Docker)

  2. 2

    Check the installed CLI version

    hatchet --version
  3. 3

    Start the Hatchet server locally

    hatchet server start

Things to know

  • Running it locally requires Docker installed on your machine.
  • Self-hosting needs Postgres and more resources than simple Redis or RabbitMQ queues, and throughput is lower.
  • The README points to Hatchet Cloud as the fastest way to start, with some features such as SSO and multi-region only offered there.

Topics

FAQ

What is hatchet?
An orchestration engine for background tasks, AI agents and durable workflows, with Python, TypeScript, Go and Ruby SDKs and Postgres as its durability layer. Hatchet is a platform for orchestrating background tasks, AI agents and long-running durable workflows. Applications written in Python, TypeScript, Go or Ruby can run on Hatchet Cloud or be self-hosted. It covers queuing, automatic retries, durability, real-time monitoring, alerting and logging in one system.
Is hatchet free to use? What license does it have?
hatchet is open source under the MIT license. Check the license terms before using it in commercial products.
Is hatchet still maintained?
Actively maintained. The last commit to hatchet was on Oct 21, 2026.
What can I use hatchet for?
Running background jobs and retries for a web application Orchestrating long-running AI agent workflows that must survive failures Building event-driven pipelines with rate-limited calls to third-party APIs Replacing Temporal or DBOS-style durable execution in a self-hosted setup
How do I install hatchet?
Install the Hatchet CLI using the official install script (requires Docker) Check the installed CLI version: hatchet --version Start the Hatchet server locally: hatchet server start
Where can I get hatchet?
The source code and installation instructions are on GitHub: https://github.com/hatchet-dev/hatchet

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects