IronMQ

The Message Queue for the Cloud
IronMQ

An easy-to-use highly available message queuing service. Built for distributed
cloud applications with critical messaging needs. Provides on-demand message
queuing with HTTPS transport, one-time FIFO delivery, message persistence,
and cloud-optimized performance.

Code Samples Easy to use. Support for every language under the sun.

  • Push a Message
  • Get a Message
  • Delete a Message
  • cURL
  • Ruby
  • Python
  • PHP
  • Java
  • Clojure
  • .NET
  • Go
  • API
  • cURL
  • Ruby
  • Python
  • PHP
  • Java
  • Clojure
  • .NET
  • Go
  • API
  • cURL
  • Ruby
  • Python
  • PHP
  • Java
  • Clojure
  • .NET
  • Go
  • API
# Put a message on the queue
curl -H "Authorization: OAuth TOKEN" -H "Content-Type: application/json" \
-d '{"messages":[{"body":"hello world!"}]}' \
"http://mq-aws-us-east-1.iron.io/1/projects/PROJECT_ID/queues/my_queue/messages"
  
	# Establish a client and put a message on the queue
	@ironmq = IronMQ::Client.new()
	@queue = @ironmq.queue("test_queue")
	@queue.post("hello world!")
  
    # Establish a client and put a message on the queue
    ironmq = IronMQ()
	queue = ironmq.queue("test_queue")
	queue.post("hello world!")
  
    // Establish a client and put a message on the queue
	$ironmq = new IronMQ();
	$ironmq->postMessage("test_queue", "Hello world!");
  
    // Establish a client and put a message on the queue
	Client client = new Client("{PROJECT_ID}", "{TOKEN}", Cloud.IronAWSUSEast);
	Queue queue = client.queue("test_queue");
	queue.push("Hello world!");
  
    ; Establish a client and put a message on the queue
	(def client (mq/create-client "{TOKEN}" "{PROJECT_ID}"))
	(mq/post-message client "test_queue" "Hello world!")
  
	// Establish a client and put a message on the queue
	Client client = new Client("{PROJECT_ID}", "{TOKEN}");
	Queue queue = client.queue("test_queue");
	queue.Push("Hello world!");
  
    // Establish a client and put a message on the queue
	client := ironmq.NewClient("{PROJECT_ID}", "{TOKEN}", ironmq.IronAWSUSEast)
	queue := client.Queue("test_queue")
	id, err := queue.Push("Hello world!")
  
    POST /projects/:project_id/queues/:queue_name/messages
    {
      "messages": [
      { "body": "This is my message" }
      ]
    }
  
# Get a message
curl -H "Authorization: OAuth TOKEN" -H "Content-Type: application/json" \
"https://mq-aws-us-east-1.iron.io/1/projects/PROJECT_ID/queues/my_queue/messages"
  
    # Get a message
	msg = @queue.get()
  
    # Get a message
	msg = queue.get()
  
    // Get a message
	$ironmq->getMessage("test_queue");
  
    // Get a message
	Message msg = queue.get();
  
    ; Get a message
	(let [msg (mq/get-message client "test_queue")])
  
	// Get a message
	Message msg = queue.get();
  
    // Get a message
	msg, err := queue.Get()
  
	  
    GET /projects/:project_id/queues/:queue_name/messages
  
# Delete a message
curl -H "Authorization: OAuth TOKEN" -H "Content-Type: application/json" -X DELETE \
"https://mq-aws-us-east-1.iron.io/1/projects/PROJECT_ID/queues/my_queue/messages/MESSAGE_ID"
  
    # Delete a message
	msg.delete
  
    # Delete a message
	queue.delete(response["messages"][0]["id"])
  
    // Delete a message
	$ironmq->deleteMessage($msg->id);
  
    // Delete a message
	queue.deleteMessage(msg);
  
    ; Delete a message (after getting it first)
	(let [msg (mq/get-message client "test_queue")]
	  (mq/delete-message client "test_queue" msg))
  
	// Delete a message
	queue.deleteMessage(msg);
  
    // Delete a message
	err := msg.Delete()
  
	  
    DELETE /projects/:project_id/queues/:queue_name/messages/:message_id
  

Features

  • Ready to Use

    Just connect to IronMQ endpoints and you’re ready to create queues and send and receive messages. Perfect for doing way more things asynchronously.

  • High Availability

    Runs on top cloud infrastructures and uses multiple high-availability data centers. Uses reliable datastores for message durability and persistence.

  • Interoperable / No Lock-in

    Built with MQ standards in mind, which means no lock-in and maximum flexibility. Change endpoints from a local MQ and move to an MQ in the cloud.

  • Scalable / High Performance

    Written with elasticity and scale at its core. Built using high-performance languages designed for concurrency and runs on industrial-strength clouds.

  • Secure Gateways / OAuth2

    Uses HTTPS and SSL to provide secure gateways for managing queues and handling messages. OAuth2 provides flexibility, scalability, and security.

  • Multiple Language Bindings

    Make use of a large set of IronMQ language libraries including Ruby, PHP, Python, Java, Go, and more. Or choose from a long list of Beanstalkd interfaces.

  • One-Time FIFO Delivery

    Unlike other cloud-based MQs, IronMQ makes sure messages get delivered once and only once in the order queued – essential for critical messaging needs.

  • Realtime Monitoring

    Provides a rich dashboard as well as API calls and notifications so you can monitor and keep a close eye on the operation of your messaging layer.

  • Affordable

    Billed by message requests. Affordable plans. Messaging is key within distributed cloud apps but it doesn't need to be expensive.

 

Comparison Matrix How IronMQ compares with other MQ systems.

IronMQ Amazon SQS Beanstalkd RabbitMQ Redis
High Performance Message Queue YES YES YES YES NO
MQ as a Service
(no maintenance)
YES YES NO NO NO
High Availability YES YES NO NO NO
Unlimited Queues YES YES NO NO NO
Elastic
(limitless messaging)
YES YES NO NO NO
Persistent
(never lose messages)
YES YES NO NO NO
Redundant/Failover YES YES NO NO NO
Backed Up YES YES NO NO NO
Shareable YES NO NO NO NO
First-In First-Out YES NO YES YES YES
One-Time Delivery YES NO YES YES YES
Publish/Subscribe YES NO NO YES YES
Push Queues YES NO NO NO NO
Webhook Support YES NO NO NO NO
Multi-Cloud YES NO NO NO NO
Dashboard YES NO NO YES NO
Reporting & Analytics YES NO NO NO NO
Email Reports YES NO NO NO NO
Message Transports HTTPS &
Beanstalk
HTTPS Beanstalk Socket-based
AMQP
Socket-based
Authentication OAuth2 AWS IAM None SASL Password

Screenshots Our HUD/Dashboard helps you manage your queues and messages.

Start queuing now for Free!

Get 10 million requests free every month – No credit card needed