Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for building and executing fault-tolerant, multi-step pipelines as directed acyclic graphs (DAGs), with automatic retries, scheduling, and real-time observability. The system is built around durable task checkpointing, which persists execution state after each step so work can resume from the last checkpoint after a worker crash or restart, and it supports event-driven task resumption that pauses a task until a matching external event arrives.
The platform distinguishes itself through its support for polyglot workers connected over gRPC, allowing task code to be written in any language and scaled independently from the orchestration services. It offers a comprehensive set of capabilities for modeling workflows as DAGs with typed data passing between dependent tasks, parallel execution, and conditional task skipping or cancellation based on parent output. Hatchet also provides a multi-step human-in-the-loop orchestrator that pauses workflows for human input or external events and resumes from checkpoints without custom recovery logic, and it exposes durable tasks as callable tools for AI agents through the Model Context Protocol (MCP) or SDKs with retries and observability.
The system includes a web-based observability dashboard for monitoring workflow runs, logs, metrics, and traces with real-time status and debugging capabilities. It supports event-driven task execution triggered by external webhooks, Slack commands, and custom events, as well as scheduled and cron-based automation for running one-off or recurring tasks. Hatchet can be self-hosted on your own infrastructure using Kubernetes or Docker, with PostgreSQL as the primary state store and optional RabbitMQ for message queuing.
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic
Async is a JavaScript asynchronous flow library designed to manage the execution and coordination of asynchronous tasks in Node.js and the browser. It provides functional utilities to wrap, process, and orchestrate complex asynchronous workflows. The library distinguishes itself through a comprehensive task orchestrator that handles dependency graphs to resolve circular references and manages concurrent task queues. It includes a unification bridge that allows callback-style and promise-based functions to operate within the same execution interface. The project covers several primary capabil
This project is a functional programming library and toolkit for building production TypeScript applications. It provides a system for managing concurrency, error handling, and resource lifecycles using functional effects. The project distinguishes itself through a comprehensive suite of specialized toolkits, including a dependency injection framework for decoupling service implementations, a workflow orchestrator for coordinating durable processes, and a SQL database toolkit for consistent data operations across multiple dialects. It also implements an OpenTelemetry instrumentation library f