@narando/stream-producer

push events to kinesis stream

Stats

StarsIssuesVersionUpdatedCreatedSize
@narando/stream-producer
0.28.02 years ago4 years agoMinified + gzip package size for @narando/stream-producer in KB

Readme

@narando/stream-producer

Framework to emit kinesis events.

Getting Started

You need to have nodejs and npm installed.

$ npm install @narando/stream-producer

Usage

First you need to import the package.

import StreamProducer from "@narando/stream-producer";

Configuration

You need to set your AWS credentials and Kinesis settings for this package to work.

Below you can find an example config.js.

{
  "aws": {
    "auth": {
      "accessKeyId": "",
      "secretAccessKey": ""
    },
    "kinesis": {
      "region": "eu-central-1",
      "params": {
        "StreamName": "dev-events"
      }
    }
  }
}

Also you need to set a title, you can do this via the logger object or app variable.

{
  "logger": {
    "title": "api"
  }
}

or

{
  "app": "api"
}

Events

Emitting an event can be done by calling .event() on the Stream Producer object.

StreamProducer.event(req, "user", "created", userId);

Required Parameters:

  • {Object} Express request object that initiated the event (can be null)
  • {String} Object that got interacted with
  • {String} Description of the event
  • {String} Id of the Object that got interacted with

Optional Parameters:

  • {Object} Any other data that should be send

Errors

Emitting an error is basically the same as emitting an event but it gets marked as an Error in the kinesis event stream. You can emit an error by calling .error() on the Stream Producer object.

StreamProducer.error(req, err);

Required Parameters:

  • {Object} Express request object that initiated the event (can be null)
  • {Object} The error object that got thrown

Optional Parameters:

  • {Object} Any other data that should be send

Development

As this package is part of the toolkit monorepo, please refer to the top-level README to learn about hacking on this package.

Built With

  • @narando/log
  • @narando/config
  • aws-sdk

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.