event-message-broker
v1.1.0
Published
A Message Bus that uses AWS Stack and RabbitMQ
Downloads
33
Maintainers
Readme
Message Bus SDK for AWS Resources
Table of Contents
Getting Started
1. Install
npm install aws-message-bus-package
2. Config File
You need to create a config.json file in your root/src project and input some AWS informations, like bellow:
{
"host": "localhost",
"port": 4566,
"region": "eu-west-2",
"account": "000000000000",
"snsArn": "arn:aws:sns",
"sqsArn": "arn:aws:sqs",
"awsHost": "localhost.localstack.cloud",
"tags": [
{ "Key": "team", "Value": "your-team-name" },
{ "Key": "appName", "Value": "your-app-name" }
],
"testMode": false
}
3. Sample Usage
const { Infrastructure } = require('aws-message-bus-package');
async () => await Infrastructure.createQueue('your-queue-name');
async () => await Infrastructure.createTopic('your-topic-name');
async () => await Infrastructure.bindTopic('your-topic-name', 'your-queue-name');
API
Infrastructure.createQueue('queue-name')
Create a new SQS queue
Infrastructure.bindTopic('topic-name', 'queue-name')
- Create a new SNS topic, if not exists
- Subscribe a SNS topic in a SQS queue
Service.publishMessage('topic-name', {CONTENT})
Send a message to SNS topic to do broadcast
- Content: any kind of type/object, this will be transformed into a JSON format
Service.sendMessage('queue-name', {CONTENT}, {PARAMS})
Send a message to SQS queue direct
- Content: any kind of type/object, this will be transformed into a JSON format
- Params: SQS.Types.SendMessageRequest
- You don't need to inform:
- MessageBody
- MessageAttributes
- QueueUrl
- You don't need to inform:
Service.scheduleMessage('topic-name', {CONTENT}, [SCHEDULED_DATE])
Send a message to EventBridge informing the SNS topic with the destination. This message will be consumed when it arrives on the scheduled date.
- Content: any kind of type/object, this will be transformed into a JSON format
Service.handleConsumerMessage('queue-name', {RESILIENCE_PARAMS})
Handle a consumer to consume queue messages
- Resilience Params:
- maxRetryCount: max number of attempts until send to DLQ
- delaySeconds: the time that will wait between attempts