Skip to main content

JetstreamStrategy

Defined in: src/server/strategy.ts:25

NestJS custom transport strategy for NATS JetStream.

Registers handlers, provisions streams and consumers, then starts message consumption and routing (Core or JetStream RPC based on configuration).

Extends

  • Server

Implements

  • CustomTransportStrategy

Constructors

Constructor

new JetstreamStrategy(options, connection, patternRegistry, streamProvider, consumerProvider, messageProvider, eventRouter, rpcRouter, coreRpcServer, ackWaitMap?, metadataProvider?): JetstreamStrategy

Defined in: src/server/strategy.ts:31

Parameters

options

JetstreamModuleOptions

connection

ConnectionProvider

patternRegistry

PatternRegistry

streamProvider

StreamProvider

consumerProvider

ConsumerProvider

messageProvider

MessageProvider

eventRouter

EventRouter

rpcRouter

RpcRouter

coreRpcServer

CoreRpcServer

ackWaitMap?

Map<StreamKind, number> = ...

metadataProvider?

MetadataProvider

Returns

JetstreamStrategy

Overrides

Server.constructor

Properties

transportId

readonly transportId: symbol

Defined in: src/server/strategy.ts:26

Unique transport identifier.

Implementation of

CustomTransportStrategy.transportId

Overrides

Server.transportId

Methods

addHandler()

addHandler(pattern, callback, isEventHandler?, extras?): void

Defined in: src/server/strategy.ts:79

Override NestJS Server.addHandler to fail fast on duplicate pattern registration.

The base class silently overwrites duplicate RPC handlers and chains duplicate event handlers, which would double-ack the same JetStream message. Any collision is treated as a fatal misconfiguration so it surfaces at bootstrap, not in production traffic.

Parameters

pattern

unknown

callback

MessageHandler

isEventHandler?

boolean = false

extras?

Record<string, unknown> = {}

Returns

void

Overrides

Server.addHandler


close()

close(): void

Defined in: src/server/strategy.ts:63

Stop all consumers, routers, subscriptions, and metadata heartbeat. Called during shutdown.

Returns

void

Implementation of

CustomTransportStrategy.close

Overrides

Server.close


getPatternRegistry()

getPatternRegistry(): PatternRegistry

Defined in: src/server/strategy.ts:123

Access the pattern registry (for module-level introspection).

Returns

PatternRegistry


listen()

listen(callback): Promise<void>

Defined in: src/server/strategy.ts:52

Start the transport: register handlers, create infrastructure, begin consumption.

Called by NestJS when connectMicroservice() is used, or internally by the module.

Parameters

callback

(...args) => void

Returns

Promise<void>

Implementation of

CustomTransportStrategy.listen

Overrides

Server.listen


on()

on(event, callback): void

Defined in: src/server/strategy.ts:100

Register event listener (required by Server base class); lifecycle events use EventBus.

Parameters

event

string

callback

Function

Returns

void

Overrides

Server.on


unwrap()

unwrap<T>(): T

Defined in: src/server/strategy.ts:112

Unwrap the underlying NATS connection.

Type Parameters

T

T

Returns

T

Throws

Error if the transport has not started.

Overrides

Server.unwrap