Emulating Amazon SQS during development

Amazon Web-ServicesAmazon Sqs

Amazon Web-Services Problem Overview


I'm quite interested in beginning some development using Amazon SQS, perhaps SimpleDB too, my question is this, are there any open source solutions that mimic the functionality, just for the purposes of development. I've already encountered the Eucalyptus project (<http://open.eucalyptus.com>;) for creating an EC-esque cloud.

I've not had any success with google, I suspect it's because the cost of entry is so inexpensive, but still, does anyone know of anything like this?

Amazon Web-Services Solutions


Solution 1 - Amazon Web-Services

For SQS I wrote ElasticMQ, which you can run either embedded (it's written in Scala, so runs on the JVM) or stand-alone. It has both persistent and in-memory modes, the first being good for dev, second for testing.

Solution 2 - Amazon Web-Services

Some of the Amazon SDKs have "mock" mode, which is:

> The mock service is an alternate way > to use the sample code. The service > doesn't call AWS, but instead returns > a set response that you can modify to > suit your needs (the XML response > files are in the Mock directory). The > mock service makes it easy for you to > test how your application handles > different responses.

For SQS, it appears the Perl and PHP SDKs have mock mode. I know that the .NET SDK for Amazon RDS also has the mock mode.

The Java SDK doesn't contain mock implementations:

> The client mock implementations have been removed. Instead, developers > are encouraged to use more flexible and full featured mock libraries, > such as EasyMock, jMock

If the SDK you will be using doesn't have the mock mode available, you could probably create your own similar type of thing which returns the preconfigured responses instead of actually hitting up the service.

See here for more info

Solution 3 - Amazon Web-Services

If you need a test double for more than just SQS, you can try LocalStack.

To simulate SQS, it internally uses ElasticMQ mentioned by adamw.

You can start LocalStack via Docker, for example, and it will start the following services:

Solution 4 - Amazon Web-Services

GoAws - https://github.com/p4tin/goaws - was just released as beta. (disclaimer - I am the developer).

Solution 5 - Amazon Web-Services

Regarding the Java SDK, it does no longer contain mock implementations:

> The client mock implementations have been removed. Instead, developers > are encouraged to use more flexible and full featured mock libraries, > such as EasyMock, jMock

Solution 6 - Amazon Web-Services

If you are in .NET or Mono you can try Stratosphere. It has local implementations that mimic SimpleDB, SQS and S3. For SimpleDB mock implementation it uses SQLite, for SQS and S3 it stores messages/objects in file system.

Solution 7 - Amazon Web-Services

if you need to simulate SNS as well as SQS you can check out: Yopa

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDerek MortimerView Question on Stackoverflow
Solution 1 - Amazon Web-ServicesadamwView Answer on Stackoverflow
Solution 2 - Amazon Web-ServicesBigJoe714View Answer on Stackoverflow
Solution 3 - Amazon Web-ServicesMifeetView Answer on Stackoverflow
Solution 4 - Amazon Web-ServicesPaul A. FortinView Answer on Stackoverflow
Solution 5 - Amazon Web-ServicestkotisisView Answer on Stackoverflow
Solution 6 - Amazon Web-ServicesPeter HizalevView Answer on Stackoverflow
Solution 7 - Amazon Web-ServicesPaul A. FortinView Answer on Stackoverflow