When should I use technology <X>?
You shouldn’t.
Oh, was that answer too short? I’ll expand.
When setting up a new webservice, datacenter, or anything beyond a toy weekend knockaround project, the generic answer to “Should I use <foo>?” is always “No!”. That’s because if you don’t know with an absolute certainty that you need it, you don’t need it. This goes for anything from job queueing systems to the latest NoSQL hotness to, well, pretty much anything with the word “distributed” in it. There are definitely places for those technologies - they do serve a purpose! However, if you view them as “things to do as a last resort”, you’ll be a hell of a lot better served than if you think of them as some sort of magical fairy pixie dust that you can sprinkle anywhere and make things “better”. And almost without exception, those who actually need them have arrived at that point after taking the old, boring, (reliable) workhorses (that most everyone should probably still be using) to their very limits.
Remember, if you have to ask, the answer is ’no’. But if you already know the answer, then what are you asking me for?
Further reading: http://devopsu.com/blog/boring-systems-build-badass-businesses/