Skip to main content Link Search Menu Expand Document (external link)

ClusterWorkflowEngine.ts overview

Since v1.0.0


Exports Grouped by Category


Constructors

make

Signature

declare const make: Effect.Effect<
  {
    readonly register: <
      Name extends string,
      Payload extends Workflow.AnyStructSchema,
      Success extends Schema.Schema.Any,
      Error extends Schema.Schema.All,
      R
    >(
      workflow: Workflow.Workflow<Name, Payload, Success, Error>,
      execute: (payload: Payload["Type"], executionId: string) => Effect.Effect<Success["Type"], Error["Type"], R>
    ) => Effect.Effect<
      void,
      never,
      | Scope.Scope
      | Exclude<R, WorkflowEngine | WorkflowInstance | Workflow.Execution<Name> | Scope.Scope>
      | Payload["Context"]
      | Success["Context"]
      | Error["Context"]
    >
    readonly execute: <
      Name extends string,
      Payload extends Workflow.AnyStructSchema,
      Success extends Schema.Schema.Any,
      Error extends Schema.Schema.All,
      const Discard extends boolean = false
    >(
      workflow: Workflow.Workflow<Name, Payload, Success, Error>,
      options: {
        readonly executionId: string
        readonly payload: Payload["Type"]
        readonly discard?: Discard | undefined
        readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
      }
    ) => Effect.Effect<
      Discard extends true ? string : Success["Type"],
      Error["Type"],
      Payload["Context"] | Success["Context"] | Error["Context"]
    >
    readonly poll: <
      Name extends string,
      Payload extends Workflow.AnyStructSchema,
      Success extends Schema.Schema.Any,
      Error extends Schema.Schema.All
    >(
      workflow: Workflow.Workflow<Name, Payload, Success, Error>,
      executionId: string
    ) => Effect.Effect<
      Workflow.Result<Success["Type"], Error["Type"]> | undefined,
      never,
      Success["Context"] | Error["Context"]
    >
    readonly interrupt: (workflow: Workflow.Any, executionId: string) => Effect.Effect<void>
    readonly resume: (workflow: Workflow.Any, executionId: string) => Effect.Effect<void>
    readonly activityExecute: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All, R>(
      activity: Activity.Activity<Success, Error, R>,
      attempt: number
    ) => Effect.Effect<
      Workflow.Result<Success["Type"], Error["Type"]>,
      never,
      Success["Context"] | Error["Context"] | R | WorkflowInstance
    >
    readonly deferredResult: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(
      deferred: DurableDeferred.DurableDeferred<Success, Error>
    ) => Effect.Effect<Exit.Exit<Success["Type"], Error["Type"]> | undefined, never, WorkflowInstance>
    readonly deferredDone: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(
      deferred: DurableDeferred.DurableDeferred<Success, Error>,
      options: {
        readonly workflowName: string
        readonly executionId: string
        readonly deferredName: string
        readonly exit: Exit.Exit<Success["Type"], Error["Type"]>
      }
    ) => Effect.Effect<void, never, Success["Context"] | Error["Context"]>
    readonly scheduleClock: (
      workflow: Workflow.Any,
      options: { readonly executionId: string; readonly clock: DurableClock.DurableClock }
    ) => Effect.Effect<void>
  },
  never,
  Sharding.Sharding | MessageStorage | Scope.Scope
>

Source

Since v1.0.0

Layers

layer

Signature

declare const layer: Layer.Layer<WorkflowEngine, never, Sharding.Sharding | MessageStorage>

Source

Since v1.0.0