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

    Constructors

    Methods

    • Cancel a workflow execution

      Parameters

      • workflowId: string
      • OptionalrunId: string

      Returns Promise<void>

    • Wait for workflow completion and get result

      Type Parameters

      • T = unknown

      Parameters

      • workflowId: string
      • OptionalrunId: string

      Returns Promise<T>

    • Query a workflow for its current state

      Type Parameters

      • T = unknown

      Parameters

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

      Returns Promise<T>

    • 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>

    • Terminate a workflow execution

      Parameters

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

      Returns Promise<void>