Distribution
------------

* Fix the $self->{'caches'} to a hash instead of list.
* (idea) A buffer mechanism to keep the messages while the IronMQ REST service is unavailable. IO::Iron::IronMQ::ASyncPush?
* Mock IronMQ/IronCache for testing of other programs.
* (idea) Verify the client is connected when created (by calling queues?)
* Rethink the using of REST:Client. Since message queues often involve a lot of traffic but always to the same address, we need to optimize REST:Client usage.
* Carp::Assert, Carp::Assert::More, other checking deactivation in production?

Messages
--------

* (idea) Handle message size (total), delay, timeout and expiration min-max values.
    - Message Var	Default	Maximum	Notes
    - Message Size	--	64KB	Includes the entire request (delay, timeout, expiration).
    - Delay	0sec	604,800sec	Message is made available on queue after the delay expires.
    - Timeout	60sec	86,400sec	Message goes back on queue after timeout unless deleted.
    - Expiration	604,800sec	2,592,000sec	Equates to 7 days and 30 days, respectively.
    - Messages per Get	1	100	One or more messages can be handled at a time.

Queues
------

* Implement new features in http://blog.iron.io/2014/05/ironmq-long-polling.html
    - Long Polling
    - Get-Delete as One Operation
* (idea) The IronMQ client needs to control the queues? Perhaps using semafores.
* (idea) Option to delete queue when IO::Iron::IronMQ::Queue object goes to garbage collection?

