Thursday, February 10, 2011

The Importance of Workers - Part 1

At Appoxy, every single one of our developers uses our new service SimpleWorker.com.  Some of them weren't sure of the value at first, but from the first time they queue()'d a nightly report builder worker, or schedule()'d the delivery of SMS's through Twilio, they were hooked on it's power.  It has become as integral a development tool as the database.


The best part?


Our developers don't need to know anything about queues (even though they do), or elastic servers, or runners, or schedulers, or even where our SimpleWorker servers live..... they simply know that the Ruby Compute Cloud is alive and waiting for their every request.


So why SimpleWorker?


First, we need to understand a bit about the current landscape of worker systems.  Here is a great writeup of Github's path through the various worker systems available today.  They ended up rolling their own.  Pay attention to how much effort they put into rolling their own, and how much potential effort any would-be user of Resque (or DJ, or any of them) has to go through to implement the system and infrastructure requirements.


https://github.com/blog/542-introducing-resque


Don't get me wrong, the current open source worker systems out there are fantastic, and each has a place in this world.  They have enabled hundreds if not thousands of websites to do amazing things.  But 95% of the world does not need to go through the trouble of rolling their own system and managing their own infrastructure.


In the next post, we'll talk about workers-as-a-service....

Chad