SmoothMQ is a drop-in replacement for SQS with a much smoother developer experience. It has a functional UI, observability, tracing, message scheduling, and rate-limiting. SmoothMQ lets you run a private SQS intance on any cloud.
SmoothMQ deploys as a single go binary and can be used by any existing SQS client.
This will run a UI on :3000
and an SQS-compatible server on :3001
.
$ go run .
This works with any SQS client in any language.
import boto3
# Simply change the endpoint_url
sqs = boto3.client("sqs", ..., endpoint_url="http:https://localhost:3001")
sqs.send_message(QueueUrl="...", MessageBody="hello world")
Celery works seamlessly:
app = Celery("tasks", broker_url="sqs:https://...@localhost:3001")
The UI lets you manage queues and search individual messages.