An effficient Nest.js Kinesis Producer based on Kevin Deng's blog piece
$ npm install nest-kinesis-producer
Add the Kinesis Producer to your App Module imports. It will register globally.
import { AppService } from './app.service';
import { Module } from '@nestjs/common';
@Module({
imports: [KinesisProducerModule.forRoot(new Kinesis())],
providers: [AppService],
})
export class AppModule {}
import { hash } from 'crypto';
import { RetryingBatchKinesisPublisher } from "nest-kinesis-producer";
export class AppService {
constructor(private readonly kinesisPublisher: RetryingBatchKinesisPublisher){}
public async sendToKinesis(messages: string[]): Promise<void> {
const events = messages.map((x) => {
return {
PartitionKey: this.getPartitionKey(x),
Data: x
};
});
await this.kinesisPublisher.putRecords('fakeStreamName', events);
}
public getPartitionKey(mesage: string): string {
...
}
}
Pull requests are welcome. Please remember that commits must be made using Angular conventional-changelog
- Author - Benjamin Main
- Twitter - @Ben05920582
Nest-Kinesis-Producer is MIT licensed.