Schedule and execute tasks across a cluster with zero effort
S

Schedule and execute tasks across a cluster with zero effort

Schedule and execute tasks across a cluster with zero effort

7,441 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Hatchet: Zero-Effort Task Scheduling Across Your Cluster

Ever had a bunch of background jobs that need to run across multiple machines, but setting up a scheduler feels like a project in itself? You've probably looked at Celery, Airflow, or just plain cron, and thought "why is this so much boilerplate?" Hatchet is a tool that aims to make this feel like it's not even a thing you need to think about.

It's a distributed task queue and scheduler that handles execution across a cluster with minimal setup. Think of it as a smart, resilient cron that scales horizontally without you having to become a Kubernetes expert.

What It Does

Hatchet lets you define and run scheduled or event-driven tasks across a group of machines. You write a function, tell it when to run (cron expression, delay, or event), and Hatchet handles the rest: dispatching to workers, retrying on failure, and managing state. The whole thing is built around a simple Go server and a client SDK.

Under the hood, it uses a Postgres-backed queue with a scheduler that distributes work. You don't need a separate message broker like Redis or RabbitMQ – just a database. That alone makes it lighter than a lot of alternatives.

Why It’s Cool

  • Dead simple setup. Install the server, connect a database, and you're up. The client libraries (Go, Python, TypeScript) are minimal and don't require a PhD in distributed systems.
  • Built-in retries and failure handling. If a task fails, Hatchet can retry it automatically, or you can set custom failure handlers. No extra code needed.
  • Real-time status. You can query task status, logs, and history without setting up a separate monitoring stack.
  • No middleware lock-in. It's not tied to a specific cloud or message broker. Run it on a single server or spread it across VMs – your choice.
  • Workflows, not just tasks. You can chain tasks together using a simple DAG (directed acyclic graph) syntax, making it useful for data pipelines or multi-step jobs.

How to Try It

  1. Clone the repo

    git clone https://github.com/hatchet-dev/hatchet.git
    cd hatchet
    
  2. Run the server (requires Docker and Go)

    docker compose up -d
    go run cmd/hatchet-server/main.go
    
  3. Install the SDK (Python example)

    pip install hatchet-sdk
    

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Apr 22, 2026