A (very basic) SQS Clone
This app is a very basic message queuing service. It works over HTTP so I guess it can be said it's a poor-man's try at building an SQS clone.
It supports the following methods:
- POST /<queue-name>: this will put the body of the HTTP request in the queue. If the queue does not exist, it'll be created
- GET /<queue-name>?ack=false: retrieve a message from specified queue. This message will become invisible to other clients
- GET /<message-id>?rollback=true: Rollback the message, ie. make it visible to other clients.
- DELETE /<message-id>: delete a message from the queue. The message-id must have be valid X-SQS-Key
When you retrieve a message from a given queue, the following set of headers will be included in the response:
- X-SQS-Key: you'll need this if you do not auto-acknowledge the message
- X-SQS-Queue: the queue name to which the message belongs
- X-SQS-Date: timestamp of when the message was queued in UTC. This is important because if you're in a different timezone you'll need to convert the date properly.
If you want to auto-acknowledge a message as soon as you get it, pass the argument ack=true on the request URL, e.g.: GET /queue_name&ack=true. This way you won't have to later delete the message.
Although I have no plans to charge for the service, you can always leave a tip: