Nservicebus ServiceControl SQS support - amazon-web-services

I see that Nservicebus's ServiceControl supports Azure queues, Msmq, Rabbitmq and Sql server. Is there any support for AWS SQS queues? Is there any plugin available?
Cheers,
Marko

NServiceBus supports AWS SQS.
Check out this example

No ServiceControl does not currently support the SQS Transport. This ServiceControl proposal would make it easier to support SQS in the future https://github.com/Particular/ServiceControl/issues/871, if you would like to comment. Or alternatively you could raise a feature request here https://github.com/Particular/ServiceControl/issues/

Related

AWS SQS and SNS with .NET core

I want to implement a publish/subscribe system inside my Micro service application on top of .NET CORE, and since I've everything built on top of AWS, I started to check SQS.
But from what I understood, SQS is only a queue that doesn't offer me that possibility, so yes I can send and read messages to the queue, but I can't have my clients consuming in real time based on topic and sending messages to every client that is subscribing to that topic, right? That's why they have SNS.
From what I understand in order to use SNS, we will always need to have SQS too, but what I'm not finding is how can I integrate SNS on .NET Core? Is there a good tutorial? Because for SQS there's plenty, but for SNS I'm not finding much.
"I'm not finding is how can I integrate SNS on .NET"
There is a brand new AWS tutorial (only a few days old) that shows how to use the AWS.NET API to create an MVC .NET app that uses the .NET SNS API to write a pub/sub app. This example uses .NET async calls as well.
https://github.com/scmacdon/AWSTracker/tree/master/SNSSampleApp
You're right that you should be looking at a combination of SQS and SNS.
SQS lacks pub/sub and SNS lacks competing consumers.
NServiceBus provides all of the middleware needed to work with both of these underlying services correctly and safely, and in .net core. Here's a simple sample: https://docs.particular.net/samples/sqs/simple/
For more information on how it works, check out the docs:
https://docs.particular.net/transports/sqs/

What is the difference between Amazon MQ and SQS?

I am a newbie to AWS. As I understand, both AWS MQ and AWS SQS are Message Queue tools. The only noted difference is that SQS is fully managed.
When should we use SQS or MQ?
SQS is a simple queueing service. It doesn't support many higher level abstractions like message routing, fanouts, distribution lists etc. It is a queue - a message is produced, and a message is delivered. It is useful when you need a Queue with limited backing logic.
AWS MQ is a managed Apache ActiveMQ(or RabbitMQ) broker service.
This provides you a fully managed Apache ActiveMQ system in the cloud, with support for a variety of industry-standard queue and broadcast protocols like AMQP, JMS etc. It is useful when you have complicated delivery rules - or when you're migrating an existing system from outside AWS into AWS, and your systems happen to talk to one another with a standard queueing protocol.
From AWS Documentation, you can search "Q: When should I use Amazon MQ vs. Amazon SQS and SNS?":
Amazon MQ, Amazon SQS, and Amazon SNS are messaging services that are
suitable for anyone from startups to enterprises. If you're using
messaging with existing applications, and want to move your messaging
to the cloud quickly and easily, we recommend you consider Amazon MQ.
It supports industry-standard APIs and protocols so you can switch
from any standards-based message broker to Amazon MQ without rewriting
the messaging code in your applications. If you are building brand new
applications in the cloud, we recommend you consider Amazon SQS and
Amazon SNS. Amazon SQS and SNS are lightweight, fully managed message
queue and topic services that scale almost infinitely and provide
simple, easy-to-use APIs. You can use Amazon SQS and SNS to decouple
and scale microservices, distributed systems, and serverless
applications, and improve reliability.
Also, in this doc, you can check comparisons with other services.

Do AWS messaging services support STOMP?

Do AWS SNS and SQS support STOMP protocol?
I have tried googling it. I went through several forums but I am not sure yet.
No. Amazon SNS and Amazon SQS have their own API.
STOMP would need to support those services (rather than vice versa), but it appears that STOMP does not support SNS nor SQS.
Actually, AWS have another message queue service for Apache ActiveMQ that does support JMS, NMS, AMQP, STOMP, MQTT, WebSocket and called Amazon MQ

How do I integrate Amazon SQS with Dynamodb

Is it possible to auto send/push the messages in Amazon SQS to DynamoDB? I wish to send my messages to SQS and for period of time I want to send this to DynamoDB. Another service should fetch the DynamoDB table and send it as email using SES.
Kindly help me out to achieve this. I will be using it for the User notification purpose from a Social networking site.
Thanks.
There is no AWS mechanism to automatically publish SQS messages to DynamoDB; but you can use an AWS Lambda event source mapping to automatically pull SQS messages and invoke a Lambda function, and it's pretty straightforward to write a Lambda function that writes those messages to DynamoDB. (Here's an example using Node.js: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/dynamodb-example-table-read-write.html.)
Yes I agree Hyangelo, you can do this with Simple Workflow Service (SWF).
SWF will give you a control feature over your application enabling you to distribute and execute different services or tasks when you want.
Here is the link to the documentation: http://aws.amazon.com/swf/
Sounds like a workflow system from how you describe what you want, have you considered Simple Workflow Service?
SQS can't be processed w/o pulling messages.
You can either use SWF to solve your use-case OR use SNS.
SNS<=>SQS binding is free by AWS.
Send your messages to SNS, bind your SNS with SQS & lambda-function.
On triggering lambda function - you can create dynamodb-record and send it to another SNS2.
Bind SNS2 <=> SES which will trigger the email.
checkout: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-sns-ses-dynamodb/

How to use (if possible) JMeter to load a AWS SQS queue with messages?

I need to load a SQS queue on the Amazon Web Services to load test an application which consumes the messages from the SQS queue.
Is it possible to load the SQS queue using JMeter?
Are there any better options available to load the SQS queue than using JMeter?
I haven't tried it, but you should be able to send the messages through HTTP requests.
I created JMeter plugin that use AWS SDK to publish events in SNS Standard or FIFO Topic:
https://github.com/JoseLuisSR/awsmeter
You just need AWS IAM user with programmatic access, download JMeter and install awsmeter plugin.
If you have questions or comments let me know.
Thanks.