Consume Events from Event System
npm install @narando/event-consumerHelps 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.
You need to have nodejs and npm installed.
``bash`
$ npm install @narando/event-consumer
First you need to import the package.
`javascript`
import EventConsumer from "@narando/event-consumer";
You need to set your AWS credentials and SQS settings for this package to work.
Below you can find an example config.js.
`javascript`
{
"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 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.
`javascript`
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
*
As this package is part of the toolkit monorepo, please refer to the top-level
README to learn about hacking on this package.
* @narando/log
* @narando/config
* sqs-consumer by BBC
* emittery by Sindre Sorhus