Skip to main content

Message Queues

Managed RabbitMQ clusters for reliable async messaging between services. Each queue gets a dedicated AMQP endpoint and a web management console -- no cluster ops, no config files.

When to use it

  • Decouple producers from consumers -- services don't need to be online at the same time
  • Fan-out messages to multiple workers (exchanges + bindings)
  • Rate-limit bursts of work with durable queues and consumer-side acknowledgements
  • Background job dispatch (email sending, image processing, webhooks)

Create a message queue

API
curl -X POST https://railpush.com/api/v1/queues \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "job-queue",
"plan": "s"
}'

# Response includes connection credentials:
# {
# "id": "rq-...",
# "amqp_url": "amqp://user:pass@rq-job-queue.<ws>.svc:5672/",
# "management_url": "https://rq-job-queue.railpush.com",
# "username": "user",
# "password": "...",
# "vhost": "/"
# }

Connect from a service

Inject the AMQP_URL env var into any service that needs to produce or consume messages:

AMQP URL format
# Internal (same workspace -- recommended for production)
AMQP_URL=amqp://user:pass@rq-job-queue.<workspace-id>.svc:5672/

# External (accessible over HTTPS/WebSocket from anywhere)
AMQP_URL=amqps://user:pass@rq-job-queue.railpush.com:5671/

Management console

Every queue instance ships with the RabbitMQ management plugin. Access it at the management_url returned on creation -- or find it in the queue's dashboard page. Use it to inspect exchanges, bindings, message rates, and queued message counts.

API reference

MethodEndpointDescription
POST/api/v1/queuesCreate a message queue
GET/api/v1/queuesList all queues in workspace
GET/api/v1/queues/:idGet queue details and credentials
DELETE/api/v1/queues/:idDelete a message queue
POST/api/v1/queues/:id/rotate-passwordRotate credentials