T31M / nest-kinesis-producer

A TypeScript port for Efficient Kinesis Producing for Interpreted code in Lambda.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kinesis Logo

Description

An effficient Nest.js Kinesis Producer based on Kevin Deng's blog piece

Installation

$ npm install nest-kinesis-producer

Adding the Global Module

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 {}

Use the Publisher

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 {
    ...
  }
}

Support

Pull requests are welcome. Please remember that commits must be made using Angular conventional-changelog

Stay in touch

License

Nest-Kinesis-Producer is MIT licensed.

About

A TypeScript port for Efficient Kinesis Producing for Interpreted code in Lambda.

License:MIT License


Languages

Language:TypeScript 100.0%