Skip to main content

JetstreamClient

Defined in: src/client/jetstream.client.ts:50

NestJS ClientProxy implementation for the JetStream transport.

Supports two operational modes:

  • Core mode (default): Uses nc.request() for RPC, nc.publish() for events.
  • JetStream mode: Uses js.publish() for RPC commands + inbox for responses.

Events always go through JetStream publish for guaranteed delivery. The mode only affects RPC (request/reply) behavior.

Clients are lightweight — they share the NATS connection from forRoot().

Extends

  • ClientProxy

Constructors

Constructor

new JetstreamClient(rootOptions, targetServiceName, connection, codec, eventBus): JetstreamClient

Defined in: src/client/jetstream.client.ts:72

Parameters

rootOptions

JetstreamModuleOptions

targetServiceName

string

connection

ConnectionProvider

codec

Codec

eventBus

EventBus

Returns

JetstreamClient

Overrides

ClientProxy.constructor

Methods

close()

close(): Promise<void>

Defined in: src/client/jetstream.client.ts:109

Clean up resources: reject pending RPCs, unsubscribe from status events.

Returns

Promise<void>

Overrides

ClientProxy.close


connect()

connect(): Promise<NatsConnection>

Defined in: src/client/jetstream.client.ts:92

Establish connection. Called automatically by NestJS on first use.

Sets up the JetStream RPC inbox (if in JetStream mode) and subscribes to connection status events for fail-fast disconnect handling.

Returns

Promise<NatsConnection>

The underlying NATS connection.

Overrides

ClientProxy.connect


dispatchEvent()

protected dispatchEvent<T>(packet): Promise<T>

Defined in: src/client/jetstream.client.ts:138

Publish a fire-and-forget event to JetStream.

Events are published to either the workqueue stream or broadcast stream depending on the subject prefix. When a schedule is present the message is published to a _sch subject within the same stream, with the target set to the original event subject.

Type Parameters

T

T = unknown

Parameters

packet

ReadPacket

Returns

Promise<T>

Overrides

ClientProxy.dispatchEvent


publish()

protected publish(packet, callback): () => void

Defined in: src/client/jetstream.client.ts:188

Publish an RPC command and register callback for response.

Core mode: uses nc.request() with timeout. JetStream mode: publishes to stream + waits for inbox response.

Parameters

packet

ReadPacket

callback

(p) => void

Returns

() => void

Overrides

ClientProxy.publish


unwrap()

unwrap<T>(): T

Defined in: src/client/jetstream.client.ts:120

Direct access to the raw NATS connection.

Type Parameters

T

T = NatsConnection

Returns

T

Throws

Error if not connected.

Overrides

ClientProxy.unwrap