JetstreamStrategy
Defined in: src/server/strategy.ts:30
NestJS custom transport strategy for NATS JetStream.
Coordinates all server-side providers:
- Registers handlers from NestJS into PatternRegistry
- Creates required streams and consumers
- Starts message consumption and routing
- Handles Core or JetStream RPC based on configuration
All dependencies are injected via the NestJS DI container.
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:36
Parameters
options
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
readonlytransportId:symbol
Defined in: src/server/strategy.ts:31
Unique transport identifier.
Implementation of
CustomTransportStrategy.transportId
Overrides
Server.transportId
Methods
addHandler()
addHandler(
pattern,callback,isEventHandler?,extras?):void
Defined in: src/server/strategy.ts:150
Override NestJS Server.addHandler to fail-fast on duplicate pattern registration.
The base class silently overwrites duplicate RPC handlers (last wins) and appends duplicate event handlers to a linked list. Both behaviors are hazardous in a JetStream context: silent overwrite drops a handler the user wrote, and double event dispatch double-acks/double-processes the same JetStream message.
We treat any pattern collision as a fatal misconfiguration so it surfaces at bootstrap instead of 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:130
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:199
Access the pattern registry (for module-level introspection).
Returns
PatternRegistry
listen()
listen(
callback):Promise<void>
Defined in: src/server/strategy.ts:57
Start the transport: register handlers, create infrastructure, begin consumption.
Called by NestJS when connectMicroservice() is used, or internally by the module.
Parameters
callback
() => void
Returns
Promise<void>
Implementation of
CustomTransportStrategy.listen
Overrides
Server.listen
on()
on(
event,callback):void
Defined in: src/server/strategy.ts:176
Register event listener (required by Server base class).
Stores callbacks for client use. Primary lifecycle events are routed through EventBus.
Parameters
event
string
callback
Function
Returns
void
Overrides
Server.on
unwrap()
unwrap<
T>():T
Defined in: src/server/strategy.ts:188
Unwrap the underlying NATS connection.
Type Parameters
T
T
Returns
T
Throws
Error if the transport has not started.
Overrides
Server.unwrap