0.0.5-dev • Published 2 years ago

@indevweb/moleculer-sqs v0.0.5-dev

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Moleculer SQS Transport And Moleculer Channel

npm.io

Moleculer SQS is channel for use AWS SQS.

How To

1 Step

npm i @indevweb/moleculer-transport-amazonsqs

2 Step

Use a official AWS SQS Doc for more details of configuration.

Channel

When You use channels , it haven't return like transport.

const ChannelsMiddleware = require("@moleculer/channels").Middleware;
const { SQSChannel } = require("@indevweb/moleculer-sqs");

const adapter = new SQSChannel({
	accessKeyId: "",
	secretAccessKey: "",
	apiVersion: "2012-11-05",
	region: "us-east-1",
	isServeless: true
});

// Create a ServiceBroker
const broker = new ServiceBroker({
	middlewares: [
		ChannelsMiddleware({
			adapter
		})
	]
});

// Define a service
broker.createService({
	name: "calcular",
	channels: {
		async sum(msg, raw) {
			console.log(`Paylod is ${JSON.stringify(msg)}`);
		}
	}
});

broker
	.start()
	// Call the service
	.then(() => broker.sendToChannel("sum", { a: 5, b: 3 }))
	.catch(err => {
		console.error("Error occured!", err.message);
	});

Transport

When use transport you can to use for call some function and return the result or can you call other service, using sqs.

const ChannelsMiddleware = require("@moleculer/channels").Middleware;
const { SQSTransporter } = require("@indevweb/moleculer-sqs");

const transport = new SQSTransporter({
	accessKeyId: "",
	secretAccessKey: "",
	apiVersion: "2012-11-05",
	region: "us-east-1",
	isServeless: false
});

// Create a ServiceBroker
const broker = new ServiceBroker({
	nodeID: "match",
	namespace: "calcular",
	transporter: transport
});

// Define a service
broker.createService({
	name: "calcular",
	actions: {
		async add(ctx) {
			const result = ctx.params.a + ctx.params.b;
			return result;
		}
	}
});

broker.start();