Skip to content
Effect Days 2026 Get your ticket

@effect/workflow

0.19.1

Patch Changes

  • #6795 af0f45b Thanks @tim-smart! - Bound the default activity interrupt retry policy while retaining exponential backoff.

  • #6795 af0f45b Thanks @tim-smart! - Fix replay of persisted DurableDeferred.raceAll results.

  • Updated dependencies [9c4d4b5]:

    • @effect/rpc@0.76.2

0.19.0

Patch Changes

  • Updated dependencies [fffdee0]:
    • effect@3.22.0
    • @effect/experimental@0.61.0
    • @effect/platform@0.97.0
    • @effect/rpc@0.76.0

0.18.2

Patch Changes

  • #6241 e5998a4 Thanks @jcalem-rogo! - Forward the parent pointer when spawning a child workflow with discard: true

  • Updated dependencies []:

    • @effect/experimental@0.60.0

0.18.1

Patch Changes

  • #6196 ec042e7 Thanks @tim-smart! - Fix workflow suspension handling so mixed failures preserve non-interrupt causes and DurableDeferred.into isolates inner suspension state.

0.18.0

Patch Changes

0.17.0

Patch Changes

0.16.0

Patch Changes

  • Updated dependencies [77eeb86, ff7053f, 287c32c]:
    • effect@3.19.13
    • @effect/platform@0.94.0
    • @effect/experimental@0.58.0
    • @effect/rpc@0.73.0

0.15.2

Patch Changes

  • #5880 cc4d2c3 Thanks @tim-smart! - ensure no more Activites are attempted before suspending

  • Updated dependencies [bd08028, 6c5c2ba]:

    • effect@3.19.10

0.15.1

Patch Changes

  • #5846 7c7d2e0 Thanks @tim-smart! - add Workflow.scope, a seperate Scope that only closes on completion

  • Updated dependencies [96c9537]:

    • @effect/experimental@0.57.10

0.15.0

Minor Changes

  • #5837 811852a Thanks @tim-smart! - add Activity.idempotencyKey

Patch Changes

  • Updated dependencies [811852a]:
    • @effect/experimental@0.57.9

0.14.0

Minor Changes

  • #5827 7bd4e82 Thanks @tim-smart! - remove schedule option from Activity.retry

Patch Changes

  • Updated dependencies []:
    • @effect/experimental@0.57.7

0.13.1

Patch Changes

  • #5821 2519056 Thanks @tim-smart! - add DurableQueue module

    A DurableQueue wraps a PersistedQueue, providing a way to wait for items to finish processing using a DurableDeferred.

    import { DurableQueue, Workflow } from "@effect/workflow"
    import { Effect, Schema } from "effect"
    // Define a DurableQueue that can be used to derive workers and offer items for
    // processing.
    const ApiQueue = DurableQueue.make({
    name: "ApiQueue",
    payload: {
    id: Schema.String
    },
    success: Schema.Void,
    error: Schema.Never,
    idempotencyKey(payload) {
    return payload.id
    }
    })
    const MyWorkflow = Workflow.make({
    name: "MyWorkflow",
    payload: {
    id: Schema.String
    },
    idempotencyKey: ({ id }) => id
    })
    const MyWorkflowLayer = MyWorkflow.toLayer(
    Effect.fn(function* () {
    // Add an item to the DurableQueue defined above.
    //
    // When the worker has finished processing the item, the workflow will
    // resume.
    //
    yield* DurableQueue.process(ApiQueue, { id: "api-call-1" })
    yield* Effect.log("Workflow succeeded!")
    })
    )
    // Define a worker layer that can process items from the DurableQueue.
    const ApiWorker = DurableQueue.worker(
    ApiQueue,
    Effect.fn(function* ({ id }) {
    yield* Effect.log(`Worker processing API call with id: ${id}`)
    }),
    { concurrency: 5 } // Process up to 5 items concurrently
    )
  • Updated dependencies [ebfbbd6]:

    • @effect/platform@0.93.5

0.13.0

Minor Changes

  • #5771 794c790 Thanks @tim-smart! - add WorkflowEngine.makeUnsafe, which abstracts the serialization boundary

Patch Changes

  • #5771 794c790 Thanks @tim-smart! - add in-memory WorkflowEngine layer

  • Updated dependencies [794c790, 079975c, 62f7636]:

    • @effect/rpc@0.72.2
    • effect@3.19.5
    • @effect/experimental@0.57.3

0.12.5

Patch Changes

  • #5744 7f3c781 Thanks @tim-smart! - remove auto-resumption of child workflows

0.12.4

Patch Changes

  • #5742 8c49696 Thanks @tim-smart! - don’t try resume a child workflow if it has a defect

0.12.3

Patch Changes

  • #5731 796a3b5 Thanks @tim-smart! - add in memory threshold to DurableClock.sleep

  • #5731 796a3b5 Thanks @tim-smart! - add DurableRateLimiter module to @effect/workflow

  • Updated dependencies [796a3b5]:

    • @effect/experimental@0.57.1

0.12.2

Patch Changes

  • #5695 63f2bf3 Thanks @tim-smart! - tie cluster Entity lifetimes to Layer scope

  • Updated dependencies [63f2bf3]:

    • effect@3.19.1

0.12.1

Patch Changes

  • #5684 15100f6 Thanks @tim-smart! - retry interrupted workflow activities

  • Updated dependencies [d43577b]:

    • @effect/rpc@0.72.1

0.12.0

Minor Changes

  • #5606 24a1685 Thanks @tim-smart! - backport @effect/cluster from effect v4

    @effect/cluster no longer requires a Shard Manager, and instead relies on the RunnerStorage service to track runner state.

    To migrate, remove any Shard Manager deployments and use the updated layers in @effect/platform-node or @effect/platform-bun.

    Breaking Changes

    • ShardManager module has been removed
    • EntityNotManagedByRunner error has been removed
    • Shard locks now use database advisory locks, which requires stable sessions for database connections. This means load balancers or proxies that rotate connections may cause issues.
    • @effect/platform-node/NodeClusterSocketRunner is now @effect/cluster/NodeClusterSocket
    • @effect/platform-node/NodeClusterHttpRunner is now @effect/cluster/NodeClusterHttp
    • @effect/platform-bun/BunClusterSocketRunner is now @effect/cluster/BunClusterSocket
    • @effect/platform-bun/BunClusterHttpRunner is now @effect/cluster/BunClusterHttp

    New Features

    • RunnerHealth.layerK8s has been added, which uses the Kubernetes API to track runner health and liveness. To use it, you will need a service account with permissions to read pod information.

Patch Changes

0.11.5

Patch Changes

  • #5642 b8e3c6d Thanks @tim-smart! - fix ReferenceError in NodeSocket.fromNet

  • Updated dependencies [b8e3c6d]:

    • @effect/rpc@0.71.1

0.11.4

Patch Changes

  • #5640 85ea731 Thanks @tim-smart! - use external interruption for workflow suspend

0.11.3

Patch Changes

  • #5602 64b764b Thanks @tim-smart! - guard against race conditions in NodeSocketServer

0.11.2

Patch Changes

  • #5590 f4c4702 Thanks @tim-smart! - add openTimeout options to NodeSocket.makeNet

  • Updated dependencies [f6987c0]:

    • @effect/platform@0.92.1

0.11.1

Patch Changes

  • #5585 cf17f2f Thanks @tim-smart! - keep socket error listener attached in NodeSocket

  • Updated dependencies [07802f7]:

    • effect@3.18.1

0.11.0

Patch Changes

0.10.3

Patch Changes

  • #5581 dd7b459 Thanks @tim-smart! - persist activity interrupts as “Suspended”

  • Updated dependencies [dd7b459]:

    • @effect/rpc@0.70.2

0.10.2

Patch Changes

  • #5577 c9e1e40 Thanks @tim-smart! - ignore non-client interrupts in workflow activities

  • Updated dependencies [c9e1e40]:

    • @effect/rpc@0.70.1

0.10.1

Patch Changes

  • #5575 d0e97d7 Thanks @tim-smart! - fix SqlMessageStorage last reply for sqlite

0.10.0

Patch Changes

  • Updated dependencies [d4d86a8]:
    • @effect/platform@0.91.0
    • @effect/rpc@0.70.0

0.9.6

Patch Changes

  • #5543 2b9db9e Thanks @tim-smart! - propagate workflow interruption to unfinished children

0.9.5

Patch Changes

  • #5488 92fd3ca Thanks @tim-smart! - return executionId from Workflow.execute + discard

0.9.4

Patch Changes

0.9.3

Patch Changes

  • #5470 e0d79c6 Thanks @tim-smart! - suspend workflow execution to ensure defects don’t escape

0.9.2

Patch Changes

  • #5415 4cb3af5 Thanks @tim-smart! - fix rpc msgpack serialization when chunk contains partial frames

  • Updated dependencies [4cb3af5]:

    • @effect/rpc@0.69.1

0.9.1

Patch Changes

  • #5394 59547d9 Thanks @tim-smart! - add DurableDeferred.withActivityAttempt, for scoping it to the current activity run

0.9.0

Patch Changes

  • Updated dependencies [3e163b2]:
    • @effect/rpc@0.69.0

0.8.3

Patch Changes

  • #5350 d0b5fd1 Thanks @tim-smart! - add Migrator.fromRecord api

0.8.2

Patch Changes

  • #5345 58d56d5 Thanks @tim-smart! - log defects in Entity & Workflow proxy for HttpApi endpoints

0.8.1

Patch Changes

  • #5265 c887902 Thanks @jrmdayn! - Add a new endpoint to the Workflow Proxy to resume a workflow that has been suspended

  • #5271 88e219f Thanks @tim-smart! - track the Cause for workflow SuspendOnFailure

0.8.0

Patch Changes

  • Updated dependencies [5a0f4f1, e9cbd26]:
    • effect@3.17.1
    • @effect/rpc@0.68.0

0.7.1

Patch Changes

  • #5260 0b17343 Thanks @tim-smart! - don’t capture non-suspended interrupts in Workflow.intoResult

0.7.0

Patch Changes

  • Updated dependencies [7813640]:
    • @effect/platform@0.90.0
    • @effect/rpc@0.67.0

0.6.0

Patch Changes

0.5.1

Patch Changes

  • Updated dependencies [f5dfabf, 17a5ea8, d25f22b]:
    • effect@3.16.14
    • @effect/platform@0.88.1
    • @effect/rpc@0.65.1

0.5.0

Patch Changes

  • Updated dependencies [27206d7, dbabf5e]:
    • @effect/platform@0.88.0
    • @effect/rpc@0.65.0

0.4.14

Patch Changes

  • Updated dependencies [c1c05a8, 5b7cd92, 81fe4a2]:
    • effect@3.16.13
    • @effect/rpc@0.64.14
    • @effect/platform@0.87.13

0.4.13

Patch Changes

  • #5191 ad6e968 Thanks @tim-smart! - Support proper suspension of workflows when nesting child workflows

  • #5195 a28efb8 Thanks @tim-smart! - add Workflow.SuspendOnFailure annotation

  • Updated dependencies [32ba77a, d5e25b2]:

    • @effect/platform@0.87.12
    • @effect/rpc@0.64.13

0.4.12

Patch Changes

0.4.11

Patch Changes

  • Updated dependencies [678318d, 678318d]:
    • @effect/platform@0.87.10
    • @effect/rpc@0.64.11

0.4.10

Patch Changes

  • Updated dependencies [54514a2]:
    • @effect/platform@0.87.9
    • @effect/rpc@0.64.10

0.4.9

Patch Changes

  • Updated dependencies [4ce4f82]:
    • @effect/platform@0.87.8
    • @effect/rpc@0.64.9

0.4.8

Patch Changes

  • Updated dependencies [a9b617f, 7e26e86]:
    • @effect/platform@0.87.7
    • @effect/rpc@0.64.8

0.4.7

Patch Changes

  • Updated dependencies [905da99]:
    • effect@3.16.12
    • @effect/platform@0.87.6
    • @effect/rpc@0.64.7

0.4.6

Patch Changes

  • Updated dependencies [2fd8676]:
    • @effect/platform@0.87.5
    • @effect/rpc@0.64.6

0.4.5

Patch Changes

  • Updated dependencies [e82a4fd]:
    • @effect/platform@0.87.4
    • @effect/rpc@0.64.5

0.4.4

Patch Changes

  • Updated dependencies [1b6e396]:
    • @effect/platform@0.87.3
    • @effect/rpc@0.64.4

0.4.3

Patch Changes

0.4.2

Patch Changes

  • Updated dependencies [faad30e]:
    • effect@3.16.10
    • @effect/platform@0.87.1
    • @effect/rpc@0.64.2

0.4.1

Patch Changes

  • Updated dependencies [112a93a]:
    • @effect/rpc@0.64.1

0.4.0

Patch Changes

  • Updated dependencies [b5bac9a]:
    • @effect/rpc@0.64.0
    • @effect/platform@0.87.0

0.3.0

Patch Changes

0.2.4

Patch Changes

  • Updated dependencies [a8d99b2]:
    • @effect/rpc@0.62.4

0.2.3

Patch Changes

  • Updated dependencies [914a191]:
    • @effect/platform@0.85.2
    • @effect/rpc@0.62.3

0.2.2

Patch Changes

  • Updated dependencies [ddfd1e4]:
    • @effect/rpc@0.62.2

0.2.1

Patch Changes

  • Updated dependencies [8cb98d5, db2dd3c]:
    • effect@3.16.8
    • @effect/platform@0.85.1
    • @effect/rpc@0.62.1

0.2.0

Patch Changes

0.1.14

Patch Changes

  • Updated dependencies [1bb0d8a, cbac1ac]:
    • effect@3.16.7
    • @effect/rpc@0.61.15
    • @effect/platform@0.84.11

0.1.13

Patch Changes

0.1.12

Patch Changes

0.1.11

Patch Changes

  • Updated dependencies [e0d3d42]:
    • @effect/rpc@0.61.12

0.1.10

Patch Changes

  • #4750 dca92fd Thanks @tim-smart! - add Workflow.CaptureDefects annotation, to configure defect behaviour

  • Updated dependencies [dca92fd]:

    • @effect/rpc@0.61.11

0.1.9

Patch Changes

  • #5018 d350176 Thanks @tim-smart! - prevent shadowing of Workflow context

0.1.8

Patch Changes

  • Updated dependencies [bf418ef]:
    • effect@3.16.5
    • @effect/platform@0.84.9
    • @effect/rpc@0.61.10

0.1.7

Patch Changes

0.1.6

Patch Changes

  • #5009 2a9a0ef Thanks @tim-smart! - remove Workflow.Registration type

0.1.5

Patch Changes

  • Updated dependencies [8b9db77]:
    • @effect/platform@0.84.8
    • @effect/rpc@0.61.8

0.1.4

Patch Changes

  • #4995 34333ab Thanks @tim-smart! - add DurableDeferred.into

  • #4995 34333ab Thanks @tim-smart! - add Activity.raceAll

  • Updated dependencies [74ab9a0, 770008e]:

    • effect@3.16.4
    • @effect/platform@0.84.7
    • @effect/rpc@0.61.7

0.1.3

Patch Changes

  • #4977 d244b63 Thanks @tim-smart! - add WorkflowProxy & WorkflowProxyServer, for deriving rpc & HttpApi servers from workflows

  • Updated dependencies [ceea77a]:

    • @effect/platform@0.84.6
    • @effect/rpc@0.61.6

0.1.2

Patch Changes

  • #4955 b8aec45 Thanks @tim-smart! - add withCompensation api to Workflow instances

  • #4955 b8aec45 Thanks @tim-smart! - remove Activity.onError

0.1.1

Patch Changes

0.1.0

Minor Changes

  • #4945 a116aea Thanks @tim-smart! - add @effect/workflow package

Patch Changes