User Guide
Introduction

Introduction to Hatchet

Welcome to the Hatchet User Guide! Hatchet is a distributed, fault-tolerant task queue designed to solve scaling problems like concurrency, fairness, and rate limiting. Instead of managing your own task queue or pub/sub system, you can use Hatchet to distribute your functions between a set of workers with minimal configuration/infrastructure.

Concepts

You run your workers, we manage the rest.

Hatchet is an orchestrator, which means it manages the execution of your workflows. However, the individual steps of each workflow are executed by your own workers (don't worry, each SDK comes with a worker implementation). This means you can run your workers in your own infrastructure, and Hatchet will manage the scheduling, retries, and monitoring of your workflows.

What is a workflow?

The term workflow tends to be overloaded, so let's make things more clear - in Hatchet, a workflow is a set of functions which are executed in response to an external trigger (an event, schedule, or API call). For example, if you'd like to send notifications to a user after they've signed up, you could create a workflow for that.

Why is that useful?

Instead of processing background tasks and functions in your application handlers, which can lead to complex code, hard-to-debug errors, and resource contention, you can distribute these workflows between a set of workers. Workers are long-running processes which listen for events, and execute the functions defined in your workflows.

A managed queue

Hatchet is built on top of a low-latency queue, which means it can handle real-time interactions and mission-critical tasks. This is particularly useful if you're building a real-time application, or if you're running tasks which need to be completed quickly. It can scale to millions of queued tasks and can handle hundreds of tasks per second. We are continuously working to improve our throughput and latency.

Quick Start Repos

There are two steps to getting started with Hatchet:

  1. Getting access to a Hatchet engine instance and installing the Hatchet SDK. You can get access to a Hatchet engine instance by requesting access (opens in a new tab) to Hatchet Cloud or self-hosting Hatchet (opens in a new tab).

  2. Once you have access to a Hatchet engine instance, you can install the Hatchet SDK in your application.

Hatchet is availabile in multiple languages, check out one of our quickstart guides for your language of choice: