Skip to main content

JetstreamStrategy

@horizon-republic/nestjs-jetstream


@horizon-republic/nestjs-jetstream / JetstreamStrategy

JetstreamStrategy

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

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?, binding?, scheduleReconciler?): JetstreamStrategy

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

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

binding?​

ConnectionBinding

scheduleReconciler?​

ScheduleReconciler

Returns​

JetstreamStrategy

Overrides​

Server.constructor

Properties​

transportId​

readonly transportId: symbol

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

Unique transport identifier.

Implementation of​

CustomTransportStrategy.transportId

Overrides​

Server.transportId

Accessors​

connectionName​

Get Signature​

get connectionName(): string

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

The connection this strategy serves; default when only one is configured.

Returns​

string


isAttached​

Get Signature​

get isAttached(): boolean

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

Whether the bootstrap called listen() on this connection at all.

Returns​

boolean


isStarted​

Get Signature​

get isStarted(): boolean

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

Whether the boot chain completed and this connection is consuming.

Returns​

boolean

Methods​

addHandler()​

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

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

Override NestJS Server.addHandler to route by connection and fail fast on duplicate pattern registration.

Every strategy in a hybrid application sees all handlers; each keeps only the ones bound to its own connection. The base class silently overwrites duplicate RPC handlers and chains duplicate event handlers, which would double-ack the same JetStream message, so a collision within one connection is treated as a fatal misconfiguration and surfaces at bootstrap.

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:90

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:162

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

Returns​

PatternRegistry


listen()​

listen(callback): Promise<void>

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

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

A critical connection blocks startup and reports failures through the callback. A non-critical one returns immediately and retries in the background, so a dead secondary cluster cannot stop the pod from serving its primary one.

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:139

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:151

Unwrap the underlying NATS connection.

Type Parameters​

T​

T

Returns​

T

Throws​

Error if the transport has not started.

Overrides​

Server.unwrap