@narando/event-consumer
v0.36.0
Published
Consume Events from Event System
Downloads
27
Readme
@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 haveevent-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
- @narando/log
- @narando/config
- sqs-consumer by BBC
- emittery by Sindre Sorhus