# Queues (/sdks/nodejs/reference/queues)



Send with `sendQueueMessage`, receive with `receiveQueueMessages`, and use streaming helpers for advanced throughput (see examples for stream send/receive, ack ranges, poll mode).

## Simple Queues [#simple-queues]

### sendQueueMessage [#sendqueuemessage]

```typescript
await client.sendQueueMessage(message: QueueMessage): Promise<QueueSendResult>
```

### receiveQueueMessages [#receivequeuemessages]

```typescript
const messages = await client.receiveQueueMessages(request: QueuePollRequest): Promise<ReceivedQueueMessage[]>
```

**QueuePollRequest:**

| Field                | Type      | Required | Description                 |
| -------------------- | --------- | -------- | --------------------------- |
| `channel`            | `string`  | Yes      | Queue channel               |
| `maxMessages`        | `number`  | No       | Batch size                  |
| `waitTimeoutSeconds` | `number`  | Yes      | Long poll wait              |
| `autoAck`            | `boolean` | No       | Auto-acknowledge on receipt |

Each received message exposes `ack()`, `nack()`, and `reQueue(channel)` helpers.

## Queue Streaming [#queue-streaming]

Streaming queue APIs (upstream/downstream, batch ack/nack) follow the patterns demonstrated in the [Queues examples](/sdks/nodejs/how-to/queues/). Refer to the example index for stream send, stream receive, auto ack, ack range, nack/requeue, and poll mode.

## Quick Usage [#quick-usage]

```typescript title="queues.ts"
await client.sendQueueMessage(
  createQueueMessage({ channel: "jobs", body: Buffer.from("task") }),
);
```

## See Also [#see-also]

* [Queues Examples](/sdks/nodejs/how-to/queues/)
* [Queues pattern](/learn/queues/getting-started)
* [Node.js SDK Getting Started](/sdks/nodejs)
