@nestjs-redisx/streams
v1.0.2
Published
Redis Streams plugin for NestJS RedisX with consumer groups, dead-letter queues, and backpressure
Maintainers
Readme
@nestjs-redisx/streams
Redis Streams plugin for NestJS RedisX. Provides StreamProducerService for publishing and @StreamConsumer decorator for declarative consumer groups with dead-letter queues and backpressure.
Installation
npm install @nestjs-redisx/core @nestjs-redisx/streams ioredisQuick Example
import { RedisModule } from '@nestjs-redisx/core';
import { StreamsPlugin, StreamConsumer, STREAM_PRODUCER, IStreamProducer } from '@nestjs-redisx/streams';
@Module({
imports: [
RedisModule.forRoot({
clients: { host: 'localhost', port: 6379 },
plugins: [new StreamsPlugin({ consumer: { batchSize: 10 }, dlq: { enabled: true } })],
}),
],
})
export class AppModule {}
@Injectable()
export class OrderService {
constructor(@Inject(STREAM_PRODUCER) private producer: IStreamProducer) {}
async create(order: Order) {
await this.producer.publish('orders', { orderId: order.id });
}
}
@Injectable()
export class OrderProcessor {
@StreamConsumer({ stream: 'orders', group: 'processors' })
async handle(msg: { orderId: string }) { /* process */ }
}Documentation
Full documentation: nestjs-redisx.dev/en/reference/streams/
License
MIT
