1.3.8 • Published 4 months ago

@adhityan/nestjs-kafka v1.3.8

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

NestJs Kafka Client

Description

A NestJS - KafkaJs Wrapper, wrapping on KafkaJS

Installation

npm install @vvtri/nestjs-kafka

or yarn:

yarn add @vvtri/nestjs-kafka

Add it to the NestJS app.module.ts

import { KafkaModule, ConsumerConfig, KafkaConfig, KafkaModuleConfig } from '@vvtri/nestjs-kafka';


const kafkaConfig: KafkaConfig = {
  clientId: 'my-app',
  brokers: ['localhost:9092'],
  ssl: false,
  connectionTimeout: 99999,
};

const consumerConfig: ConsumerConfig = {
  groupId: 'test',
  allowAutoTopicCreation: true,
};

@Module({
  imports: [KafkaModule.forRoot({ kafkaConfig, consumerConfig })],
  controllers: [],
  providers: [],
})
export class AppModule {}

To see all available config, see KafkaModuleConfig.

How to sendMessage

import {  KafkaProducer } from '@vvtri/nestjs-kafka';

@Injectable()
export class TaskKafkaProductService {
  constructor(private readonly kafkaProducer: KafkaProducer,) {}

  public async sendPushTask(kafkaTaskDto: KafkaTaskDto): Promise<any> {
     await this.kafkaProducer.send<KafkaTaskDto>(
      {
        topic: Topic,
        messages: [{ value: kafkaTaskDto }],
      },
      {
        autoStringifyJson: true,
      }
    );
  }
}

How to Subscribe Message

import { EachMessagePayload, KafkaListener, SubscribeTo } from '@vvtri/nestjs-kafka';

@Injectable()
@KafkaListener()
export class TaskKafkaConsumerService {
  @SubscribeTo('task.push.info', { autoParseByJson: true //default true})
  taskSubscriber(payload: EachMessagePayload<string>): any {
    console.log('value', payload.message.value)
    console.log('header', payload.message.headers)
    console.log('key', payload.message.key)
  }
}
1.3.7

4 months ago

1.3.8

4 months ago

1.3.6

6 months ago

1.3.5

11 months ago

1.3.4

11 months ago

1.3.3

11 months ago

1.3.2

11 months ago

1.3.1

11 months ago

1.3.0

11 months ago

1.2.4

12 months ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.5

1 year ago