|Scalable Workers in Laravel|
One of the fun parts about working at Iron.io is being able to connect with developers working on some great projects.
One of these is Scott Wilcox, the developer of Tweekly.fm. His service posts Last.fm events to Twitter and has been growing in popular the last several months. Scott wrote a great post the other day on the growth of his service and the things he did to help scale the processing.
Scott built his service on Laravel, a popular and growing PHP framework. He used Iron.io's IronWorker service in conjunction with Laravel to power and scale the posting to Twitter.
Below is an excerpt of his post. If you're interested in ways to build something to be able to scale easily, it's definitely worth reading.
Around October 2013 I discovered Iron.io almost by accident. I'd recently begun rewriting Tweekly.fm into the excellent Laravel framework. I was testing Laravel 4's queuing systems and noticed a reference to Iron.io. After reading more into the IronMQ product, I came across IronWorker.
The difference IronWorker provided for Tweekly.fm cannot be understated. It allows us the create updates, package them up to be sent and then queue en-masse into an IronWorker queue. These are then processed in batches and an entire days updates can be sent out in a matter of minutes.
Sunday is the busiest day of the week for Tweekly.fm. Regularly for a year now, we've been pushing out over 200,000 updates. That's 8,333 updates an hour or 138 a minute. This would take over 24 hours sequentially, around 18 hours with multiple curl calls and takes just over 40 minutes with IronWorker at a fraction of the cost.
I was able to remove one of the servers and save on the hosting cost – this alone reduced our costs by half.
The exceptional service, support and price is worth it alone. Mix that in with the fact costs were halved - I'm not too sure how you can look anywhere else when needing to run PHP workers for your large scale projects.
To read the full post, visit Scott's blog here.
To check out the Iron.io platform, sign up for a free account.
To learn more about using the Iron.io platform with Laravel, take a look at these resources:
- Laravel 4 + IronMQ Push Queues = Insane Goodness
- Using Push Queues in Laravel 4
- How to Get Real-time Notifications in Laravel 4 using IronMQ