@narando/event-consumer

0.36.0 • Public • Published

@narando/event-consumer

Helps consuming business events from the Event System (SQS).

This package is oriented towards services that consume events as a secondary priority.

This README describes the package in-detail. See here for a more complete overview of the Event System.

If the main purpose of the service is consuming events, or the service wants to use SQS internally. Using the sqs-consumer by BBC is recommended.

Getting Started

You need to have nodejs and npm installed.

$ npm install @narando/event-consumer

Usage

First you need to import the package.

import EventConsumer from "@narando/event-consumer";

Configuration

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

Below you can find an example config.js.

{
  "aws": {
    "auth": {
      "accessKeyId": "",
      "secretAccessKey": ""
    },
    "sqsEvents": {
      "region": "eu-central-1",
      "queueUrl": "https://sqs.eu-west-1.amazonaws.com/123513728131/dev-events"
    }
  }
}

The queueUrl is specific for each service. Check that you have event-stream/subscription configured in narando/devops.

Events

Events can be listened on by subscribing to the exported EventEmitter. We use emittery as a replacement for EventEmitter to support asynchronous event handler. Using the canonical EventEmitter we can not reliably verify that the handler did not throw an error.

The list of available events can be found here.

EventConsumer.on("api:user:created", async event => {
  await sendWelcomeMessage(event.user);
});

Required Parameters:

  • {String} Name of the event
  • {Function} async Handler that will be called to consume events

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.36.0
    0
    • latest

Version History

Package Sidebar

Install

npm i @narando/event-consumer

Weekly Downloads

0

Version

0.36.0

License

UNLICENSED

Unpacked Size

14.5 kB

Total Files

8

Last publish

Collaborators

  • narandosystem
  • marcmogdanz
  • apricote
  • brandolpho