nestjs-temporal-core
    Preparing search index...

    Class TemporalClientService

    Temporal Client Service

    Provides a clean interface for Temporal client operations including:

    • Workflow execution (start, terminate, cancel)
    • Signal and query operations
    • Workflow handle management
    • Client health monitoring
    // Start a workflow
    const handle = await clientService.startWorkflow('myWorkflow', { data: 'example' });

    // Send a signal
    await clientService.signalWorkflow(handle, 'updateData', 'new data');

    // Query workflow state
    const result = await clientService.queryWorkflow(handle, 'getStatus');

    Implements

    • OnModuleInit
    Index
    • Cancel a workflow execution

      Parameters

      • workflowId: string
      • OptionalrunId: string

      Returns Promise<void>

    • Complete an externally-managed Activity, identified by task token or full ID. Use when an Activity signals completion asynchronously (e.g. from another process or a human-in-the-loop step) instead of returning from its handler.

      Parameters

      • taskTokenOrFullActivityId: Uint8Array<ArrayBufferLike> | FullActivityId
      • result: unknown

      Returns Promise<void>

      await clientService.completeActivity(taskToken, { approved: true });
      
    • Execute a Standalone Activity until completion and return its result.

      Type Parameters

      • R = unknown

      Parameters

      Returns Promise<R>

      Standalone Activities are a Public Preview Temporal server feature; the underlying API may change in future SDK releases.

      const result = await clientService.executeStandaloneActivity('sendEmail', {
      id: 'email-123',
      taskQueue: 'emails',
      args: ['user@example.com'],
      startToCloseTimeout: '1m',
      });
    • Fail an externally-managed Activity, identified by task token or full ID.

      Parameters

      • taskTokenOrFullActivityId: Uint8Array<ArrayBufferLike> | FullActivityId
      • err: unknown

      Returns Promise<void>

      await clientService.failActivity(taskToken, new Error('payment declined'));
      
    • Get a handle to a Standalone Activity execution by ID.

      Type Parameters

      • R = unknown

      Parameters

      • activityId: string
      • OptionalrunId: string

      Returns ActivityHandle<R>

      Standalone Activities are a Public Preview Temporal server feature; the underlying API may change in future SDK releases.

    • Wait for workflow completion and get result

      Type Parameters

      • T = unknown

      Parameters

      • workflowId: string
      • OptionalrunId: string

      Returns Promise<T>

    • Send a heartbeat for an externally-managed Activity, identified by task token or full ID.

      Parameters

      • taskTokenOrFullActivityId: Uint8Array<ArrayBufferLike> | FullActivityId
      • Optionaldetails: unknown

      Returns Promise<void>

      await clientService.heartbeatActivity(taskToken, { progress: 50 });
      
    • Query a workflow for its current state

      Type Parameters

      • T = unknown

      Parameters

      • workflowId: string
      • queryName: string
      • Optionalargs: readonly unknown[]
      • OptionalrunId: string

      Returns Promise<T>

    • Report cancellation of an externally-managed Activity, identified by task token or full ID.

      Parameters

      • taskTokenOrFullActivityId: Uint8Array<ArrayBufferLike> | FullActivityId
      • Optionaldetails: unknown

      Returns Promise<void>

      await clientService.reportActivityCancellation(taskToken);
      
    • Atomically start a workflow and send a signal to it.

      If the workflow is already running, only the signal is delivered. This is Temporal's signalWithStart operation — useful for ensuring a workflow is running before sending a signal without a race condition.

      Parameters

      • workflowType: string

        Temporal workflow type name

      • signalName: string

        Signal name (string) to send

      • signalArgs: readonly unknown[]

        Arguments for the signal

      • workflowArgs: readonly unknown[]

        Arguments to start the workflow with (used only when starting)

      • Optionaloptions: WorkflowStartOptions

        Workflow start options (taskQueue, workflowId, etc.)

      Returns Promise<WorkflowHandleWithMetadata>

      // Idempotent: starts the cart the first time, signals it every time.
      await clientService.signalWithStart(
      'cartWorkflow',
      'addItem',
      [{ sku: 'SKU-123', qty: 2 }],
      [userId], // args passed to cartWorkflow on first start
      { workflowId: `cart-${userId}`, taskQueue: 'carts' },
      );
      const handle = await clientService.signalWithStart(
      'orderWorkflow',
      'approve',
      ['manager-approval'],
      [orderId, customerId],
      {
      workflowId: `order-${orderId}`,
      taskQueue: 'orders',
      workflowIdReusePolicy: 'ALLOW_DUPLICATE',
      workflowExecutionTimeout: '1h',
      memo: { source: 'api' },
      },
      );
      console.log(`Signaled + maybe-started: ${handle.workflowId}`);
    • Send a signal to a workflow

      Parameters

      • workflowId: string
      • signalName: string
      • Optionalargs: readonly unknown[]
      • OptionalrunId: string

      Returns Promise<void>

    • Start a Standalone Activity execution — a durable, retryable Activity run directly by the client with no workflow involved.

      Type Parameters

      • R = unknown

      Parameters

      Returns Promise<ActivityHandle<R>>

      Standalone Activities are a Public Preview Temporal server feature; the underlying API may change in future SDK releases.

      const handle = await clientService.startStandaloneActivity('sendEmail', {
      id: 'email-123',
      taskQueue: 'emails',
      args: ['user@example.com'],
      startToCloseTimeout: '1m',
      });
      const result = await handle.result();
    • Start an update and return a handle once the update has been accepted by the workflow, without waiting for it to complete. Use WorkflowUpdateHandle.result() to await the outcome.

      Type Parameters

      • T = unknown

      Parameters

      • workflowId: string

        Target workflow ID

      • updateName: string

        Update name (matches @UpdateMethod or defineUpdate name)

      • Optionalargs: readonly unknown[]

        Arguments for the update handler

      • OptionalrunId: string

        Optional specific run ID

      Returns Promise<WorkflowUpdateHandle<T>>

      const updateHandle = await clientService.startUpdateWorkflow('account-123', 'deposit', [100]);
      const newBalance = await updateHandle.result();
    • Terminate a workflow execution

      Parameters

      • workflowId: string
      • Optionalreason: string
      • OptionalrunId: string

      Returns Promise<void>

    • Send an update to a workflow and wait for it to complete.

      Updates combine the strengths of Signals (can mutate workflow state) and Queries (can return a result) into a single request/response operation.

      Type Parameters

      • T = unknown

      Parameters

      • workflowId: string

        Target workflow ID

      • updateName: string

        Update name (matches @UpdateMethod or defineUpdate name)

      • Optionalargs: readonly unknown[]

        Arguments for the update handler

      • OptionalrunId: string

        Optional specific run ID

      Returns Promise<T>

      const newBalance = await clientService.updateWorkflow<number>(
      'account-123',
      'deposit',
      [100],
      );
    • Send an update to a workflow using an existing handle and wait for it to complete.

      Type Parameters

      • T = unknown

      Parameters

      • handle: WorkflowHandle
      • updateName: string
      • Optionalargs: readonly unknown[]

      Returns Promise<T>