Skip to main content
durable-effect bridges Effect’s composable, type-safe programming model with the durability of Cloudflare Durable Objects. Write workflows, recurring jobs, and event-driven state machines as pure Effect programs, without tangling business logic with infrastructure concerns.
Experimental — APIs may change. Currently only supports Cloudflare Durable Objects as the execution engine.

Choose your abstraction

Workflows

Multi-step programs that survive restarts. Steps cache their results and replay on resume.

Jobs

Continuous, debounce, and task job patterns — each backed by its own Durable Object instance.

Tasks

Low-level durable state machines with typed events, scheduled alarms, and in-memory testing support.

Get started

Introduction

Understand the problem durable-effect solves and the core concepts behind it.

Quickstart

Install the packages and run your first durable workflow in minutes.

Key capabilities

Durable steps & sleep

Step results are cached automatically. Sleeps persist across deployments — from seconds to months.

Retry & backoff strategies

Exponential, linear, and constant backoff with jitter, max duration, and selective retry predicates.

Type-safe clients

Full type inference from workflow registry to client call — no stringly-typed names or unsafe casts.

In-memory testing

Test without Cloudflare infrastructure using in-memory storage and alarm implementations.

Explore the API reference

@durable-effect/workflow

Workflow.make, Workflow.step, Workflow.sleep, Backoff, createDurableWorkflows

@durable-effect/jobs

Continuous.make, Debounce.make, Task.make, createDurableJobs

@durable-effect/task

Task.define, TaskContext, createTasks, withServices

Build docs developers (and LLMs) love