What is @temporalio/client?
@temporalio/client is an npm package that provides a client for interacting with Temporal, a platform for orchestrating microservices and managing workflows. It allows developers to start, query, and manage workflows and activities in a Temporal server.
What are @temporalio/client's main functionalities?
Starting a Workflow
This feature allows you to start a new workflow. The code sample demonstrates how to create a connection to the Temporal server, instantiate a WorkflowClient, and start a workflow with a specified task queue.
const { Connection, WorkflowClient } = require('@temporalio/client');
async function run() {
const connection = new Connection();
const client = new WorkflowClient(connection.service);
const handle = await client.start('exampleWorkflow', { taskQueue: 'example' });
console.log(`Started workflow with ID: ${handle.workflowId}`);
}
run().catch(err => console.error(err));
Querying a Workflow
This feature allows you to query the state of a running workflow. The code sample shows how to get a handle to a workflow using its ID and perform a query on it.
const { Connection, WorkflowClient } = require('@temporalio/client');
async function run() {
const connection = new Connection();
const client = new WorkflowClient(connection.service);
const handle = client.getHandle('exampleWorkflowId');
const result = await handle.query('exampleQuery');
console.log(`Query result: ${result}`);
}
run().catch(err => console.error(err));
Cancelling a Workflow
This feature allows you to cancel a running workflow. The code sample demonstrates how to get a handle to a workflow using its ID and cancel it.
const { Connection, WorkflowClient } = require('@temporalio/client');
async function run() {
const connection = new Connection();
const client = new WorkflowClient(connection.service);
const handle = client.getHandle('exampleWorkflowId');
await handle.cancel();
console.log('Workflow cancelled');
}
run().catch(err => console.error(err));
Other packages similar to @temporalio/client
aws-sdk
The aws-sdk package provides a comprehensive set of tools for interacting with AWS services, including Step Functions, which can be used for orchestrating workflows. Compared to @temporalio/client, aws-sdk offers broader functionality but may require more setup and configuration for workflow orchestration.
camunda-external-task-client-js
The camunda-external-task-client-js package is a client for interacting with Camunda BPM, a workflow and decision automation platform. It allows for the execution of external tasks in a workflow. Compared to @temporalio/client, it is more focused on BPMN-based workflows and external task execution.
zeebe-node
The zeebe-node package is a client for Zeebe, a workflow engine for microservices orchestration. It provides similar functionalities to @temporalio/client, such as starting and managing workflows, but is designed to work with the Zeebe engine specifically.