You are on page 1of 2

Background info

Amazon Simple Queue Service (SQS)​ is a fully managed message queuing service
that enables you to decouple and scale microservices, distributed systems, and
serverless applications. Using SQS, you can send, store, and receive messages
between software components at any volume, without losing messages or requiring
other services to be available.

SQS offers two types of message queues:

1. SQS Standard queues offer maximum throughput, best-effort ordering, and


at-least-once delivery.
2. SQS FIFO queues are designed to guarantee that messages are processed
exactly once, in the exact order that they are sent.

Task

Your task is to ​create a test suite which tests the functionality of the SQS service’s
standard queue​. You can ignore the FIFO queue for the purpose of this test.

Documentation on the functionality of the service can be found ​here​.

For the purpose of this test, you can use ​ElasticMQ​ to run a local SQS server to
test against, rather than use the live AWS SQS service.

You can use the language of your choice. Amazon provides code libraries
for interfacing with SQS for the following languages: ​C++​, ​Go​, ​Java​,
JavaScript​, ​.NET​, ​Node.js​, ​PHP​, ​Python​, ​Ruby

Setup

1. Make sure you have Java 8 or above installed on your system


2. Download the latest version of elasticmq-server.jar, ​linked here
3. Open a terminal in the same directory as the server JAR file and run “java
-jar elasticmq-server-<version>.jar”

You should then have an ElasticMQ server listening on localhost at port 9324
which you can connect to using the code library of your choice.
Full documentation with alternative setup methods and examples in Java and
Python can be found on Github (​https://github.com/adamw/elasticmq​).

Finally
You should spend ​up to​ 4 hours on this task and return the completed exercise as a
zip file, with a README containing any setup instructions.

Don’t worry about providing full coverage. We’ll be interested to see your approach
and the cases that you cover. Please detail any assumptions you make and provide
documentation to indicate why you took the approach you did. Also specify what you
would do next given more time.

Setup and documentation is not included in the 4-hour time limit.

You might also like