JetstreamModuleOptions
Defined in: src/interfaces/options.interface.ts:129
Root module configuration for JetstreamModule.forRoot().
Minimal usage requires only name and servers.
All other fields have production-ready defaults.
Properties
broadcast?
optionalbroadcast?:StreamConsumerOverrides
Defined in: src/interfaces/options.interface.ts:159
Broadcast event stream/consumer overrides.
codec?
optionalcodec?:Codec
Defined in: src/interfaces/options.interface.ts:140
Global message codec.
Default
JsonCodec
connectionOptions?
optionalconnectionOptions?:Partial<ConnectionOptions>
Defined in: src/interfaces/options.interface.ts:213
Raw NATS ConnectionOptions pass-through for advanced connection config.
Allows setting tls, auth, reconnect behavior, maxReconnectAttempts, etc.
Merged with name and servers — those take precedence.
consumer?
optionalconsumer?:boolean
Defined in: src/interfaces/options.interface.ts:153
Enable consumer infrastructure (streams, consumers, message routing).
Set to false for publisher-only services (e.g., API gateways).
Default
true
events?
optionalevents?:StreamConsumerOverrides
Defined in: src/interfaces/options.interface.ts:156
Workqueue event stream/consumer overrides.
hooks?
optionalhooks?:Partial<TransportHooks>
Defined in: src/interfaces/options.interface.ts:175
Transport lifecycle hook handlers. Unset hooks are silently ignored — no default logging.
name
name:
string
Defined in: src/interfaces/options.interface.ts:131
Service name. Used for stream/consumer/subject naming.
ordered?
optionalordered?:OrderedEventOverrides
Defined in: src/interfaces/options.interface.ts:169
Ordered event consumer configuration.
Ordered events use a separate stream with Limits retention and deliver
messages in strict sequential order. Use ordered: prefix when publishing.
See
OrderedEventOverrides
rpc?
optionalrpc?:RpcConfig
Defined in: src/interfaces/options.interface.ts:146
RPC transport mode and configuration.
Default
{ mode: 'core' }
servers
servers:
string[]
Defined in: src/interfaces/options.interface.ts:134
NATS server URLs.
shutdownTimeout?
optionalshutdownTimeout?:number
Defined in: src/interfaces/options.interface.ts:206
Graceful shutdown timeout in ms. Handlers exceeding this are abandoned.
Default
10_000
Methods
onDeadLetter()?
optionalonDeadLetter(info):Promise<void>
Defined in: src/interfaces/options.interface.ts:199
Async callback invoked when an event message exhausts all delivery attempts. Called before msg.term(). If it throws, the message is nak'd for retry.
Use this to persist dead letters to an external store (DB, S3, another queue).
The NATS connection is available via JETSTREAM_CONNECTION token in forRootAsync.
Parameters
info
Returns
Promise<void>
Example
JetstreamModule.forRootAsync({
name: 'my-service',
imports: [DlqModule],
inject: [DlqService, JETSTREAM_CONNECTION],
useFactory: (dlqService, connection) => ({
servers: ['nats://localhost:4222'],
onDeadLetter: async (info) => {
await dlqService.persist(info);
},
}),
})