iron-io/iron_mq
PHP client for IronMQ (API v3), an elastic cloud message queue. Composer installable and PSR-4 namespaced (v4.* recommended; Laravel 5.1/5.2 compatible). Send/receive messages and manage queues with Iron.io credentials.
queue:work) but offers hosted redundancy (vs. Redis/SQL-based queues). Can integrate with Laravel’s Illuminate\Queue via custom drivers or as a standalone service.iron_mq_php) is lightweight (~87 stars) but stable (last commit 2018). IronMQ’s REST API is well-documented, reducing integration risk.// config/queue.php
'connections' => [
'ironmq' => [
'driver' => 'ironmq',
'project_id' => env('IRONMQ_PROJECT_ID'),
'token' => env('IRONMQ_TOKEN'),
],
];
dispatch() + custom queue listener.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Vendor Lock-in | Medium | Abstract IronMQ behind an interface for future swaps (e.g., RabbitMQ). |
| Cost at Scale | High | Monitor usage; compare pricing with AWS SQS/Beanstalkd. |
| Legacy Client | Low | IronMQ API is stable; client updates unlikely to break integrations. |
| Laravel Driver Gap | Medium | Build a community-driven ironmq queue driver or use a facade pattern. |
| Cold Start Latency | Low | IronMQ caches connections; minimal impact. |
us-west-1, eu-central-1).Phase 1: Pilot Integration
use IronMQ\IronMQ;
$mq = new IronMQ(env('IRONMQ_PROJECT_ID'), env('IRONMQ_TOKEN'));
$mq->postToQueue('emails', json_encode(['user_id' => 123]));
ironmq-cli for queue management during testing.Phase 2: Laravel Queue Driver
Illuminate\Queue\Queue to wrap IronMQ:
class IronMQQueue extends Queue implements QueueContract {
public function push($job, $data, $queue = null) {
$mq = new IronMQ(...);
$mq->postToQueue($queue ?? 'default', $data);
}
}
queue:work and queue:failed.Phase 3: Full Cutover
config/queue.php.| Feature | IronMQ Support | Laravel Queue Support | Notes |
|---|---|---|---|
| Job Retries | Yes (via delay) |
Yes | IronMQ uses exponential backoff. |
| Delayed Jobs | Yes | Yes | Via delay() method. |
| Priority Queues | No | Yes (via priority) |
Workaround: Use multiple queues. |
| Dead Letter Queues | Yes | Yes | Configure in IronMQ dashboard. |
| Horizon Monitoring | No | Yes | Use IronMQ’s web UI or custom metrics. |
IRONMQ_PROJECT_ID/IRONMQ_TOKEN.app-name-jobs).iron_mq_php library is stable; updates are infrequent.queue:work) based on IronMQ’s ApproximateMessageCount.How can I help you explore Laravel packages today?