Skip to content
Effect Days 2026 Get your ticket

DurableDeferred

20 exports Added in v1.0.0 Source

Combinators

done

Added in v1.0.0 Source

Signature

declare const done: {
<Success extends Any, Error extends All>(options: {
readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
readonly token: Token;
}): (self: DurableDeferred<Success, Error>) => Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>, options: {
readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
readonly token: Token;
}): Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
}

fail

Added in v1.0.0 Source

Signature

declare const fail: {
<Success extends Any, Error extends All>(options: {
readonly error: Error["Type"];
readonly token: Token;
}): (self: DurableDeferred<Success, Error>) => Effect<void, never, WorkflowEngine | Error["Context"]>;
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>, options: {
readonly error: Error["Type"];
readonly token: Token;
}): Effect<void, never, WorkflowEngine | Error["Context"]>;
}

failCause

Added in v1.0.0 Source

Signature

declare const failCause: {
<Success extends Any, Error extends All>(options: {
readonly cause: Cause.Cause<Error["Type"]>;
readonly token: Token;
}): (self: DurableDeferred<Success, Error>) => Effect<void, never, WorkflowEngine | Error["Context"]>;
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>, options: {
readonly cause: Cause.Cause<Error["Type"]>;
readonly token: Token;
}): Effect<void, never, WorkflowEngine | Error["Context"]>;
}

into

Added in v1.0.0 Source

Signature

declare const into: {
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>): <R>(effect: Effect<Success["Type"], Error["Type"], R>) => Effect<Success["Type"], Error["Type"], WorkflowEngine | WorkflowInstance | R | Success["Context"] | Error["Context"]>;
<Success extends Any, Error extends All, R>(effect: Effect<Success["Type"], Error["Type"], R>, self: DurableDeferred<Success, Error>): Effect<Success["Type"], Error["Type"], WorkflowEngine | WorkflowInstance | R | Success["Context"] | Error["Context"]>;
}

succeed

Added in v1.0.0 Source

Signature

declare const succeed: {
<Success extends Any, Error extends All>(options: {
readonly token: Token;
readonly value: Success["Type"];
}): (self: DurableDeferred<Success, Error>) => Effect<void, never, WorkflowEngine | Success["Context"]>;
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>, options: {
readonly token: Token;
readonly value: Success["Type"];
}): Effect<void, never, WorkflowEngine | Success["Context"]>;
}

Constructors

make

Added in v1.0.0 Source

Signature

declare function make<Success extends Any = Void, Error extends All = Never>(name: string, options?: {
readonly error?: Error;
readonly success?: Success;
}): DurableDeferred<Success, Error>

Models

Any interface

Added in v1.0.0 Source

Signature

interface Any {
readonly [TypeId]: typeof TypeId;
readonly errorSchema: All;
readonly exitSchema: ExitFromSelf<any, any, any>;
readonly name: string;
readonly successSchema: Any;
}

DurableDeferred interface

Added in v1.0.0 Source

Signature

interface DurableDeferred<Success extends Schema.Schema.Any, Error extends Schema.Schema.All = typeof Schema.Never> {
readonly [TypeId]: typeof TypeId;
readonly errorSchema: Error;
readonly exitSchema: ExitFromSelf<Success, Error, (options?: ErrorOptions) => Defect>;
readonly name: string;
readonly successSchema: Success;
readonly withActivityAttempt: Effect<DurableDeferred<Success, Error>>;
}

Other

Signature

declare const await: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Effect.Effect<Success["Type"], Error["Type"], WorkflowEngine | WorkflowInstance | Success["Context"] | Error["Context"]>

Racing

raceAll

Added in v1.0.0 Source

Signature

declare function raceAll<Effects extends readonly [Effect<any, any, any>, Effect<any, any, any>], SI, SR, EI, ER>(options: {
effects: Effects;
error: any;
name: string;
success: any;
}): Effect<Effects[number] extends Effect<_A, _E, _R> ? _A : never, Effects[number] extends Effect<_A, _E, _R> ? _E : never, WorkflowEngine | WorkflowInstance | SR | ER | Effects[number] extends Effect<_A, _R, R> ? R : never>

Symbols

TypeId

Added in v1.0.0 Source

Signature

declare const TypeId: unique symbol

TypeId type

Added in v1.0.0 Source

Signature

type TypeId = typeof TypeId

Token

token

Added in v1.0.0 Source

Signature

declare const token: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Effect.Effect<Token, never, WorkflowInstance>

Token

Added in v1.0.0 Source

Signature

declare const Token: brand<String, typeof TokenTypeId>

Token type

Added in v1.0.0 Source

Signature

type Token = Brand.Branded<string, TokenTypeId>

Signature

declare const tokenFromExecutionId: {
(options: {
readonly executionId: string;
readonly workflow: Workflow.Any;
}): <Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>) => Token;
<Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>, options: {
readonly executionId: string;
readonly workflow: Workflow.Any;
}): Token;
}

Signature

declare const tokenFromPayload: {
<W extends Any>(options: {
readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
readonly workflow: W;
}): <Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>) => Effect<Token>;
<Success extends Any, Error extends All, W extends Any>(self: DurableDeferred<Success, Error>, options: {
readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
readonly workflow: W;
}): Effect<Token>;
}

TokenParsed

Added in v1.0.0 Source

Signature

declare class TokenParsed extends {
readonly deferredName: string;
readonly executionId: string;
readonly workflowName: string;
} {
constructor(...args: [props: {
readonly deferredName: string;
readonly executionId: string;
readonly workflowName: string;
}, options?: MakeOptions]);
static readonly encode: (input: any, options?: ParseOptions) => any;
static readonly fromString: (input: any, options?: ParseOptions) => any;
static readonly FromString: any;
asToken: Token;
}

TokenTypeId

Added in v1.0.0 Source

Signature

declare const TokenTypeId: unique symbol

TokenTypeId type

Added in v1.0.0 Source

Signature

type TokenTypeId = typeof TokenTypeId