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
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/queues | Create a message queue |
| GET | /api/v1/queues | List all queues in workspace |
| GET | /api/v1/queues/:id | Get queue details and credentials |
| DELETE | /api/v1/queues/:id | Delete a message queue |
| POST | /api/v1/queues/:id/rotate-password | Rotate credentials |