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