And here are some real life use cases ..
- Flickr uses offline queuing systems to process notifications to contacts and third party partners when a user uploads a photo. Informing the user is of prime importance which Flickr does as part of the synchronous request/response processing, while the other notifications are processed by job queues running in parallel.
- Digg uses Gearman to farm out similar processing of jobs in parallel while serving the absolute essential stuff synchronously.
- And as recently presented in QCon by Evan Weaver, Twitter is becoming more and more centered around messaging middleware. Every incoming tweet triggers the messaging system for processing notifications to all followers, and this is done asynchronously through Kestrel, an implementation of a message queue written in Scala.
All these use cases lead to the conclusion that message queuing is becoming an increasingly potent medium of distribution even in Web based applications. The moot point is eventual consistency, that leads to a better scalability model. And, by the way, it looks to be about time that open source messaging platforms start getting more steam, so that every house does not have to reinvent the wheel and develop its own message queuing infrastructure.
5 comments:
Which do you think are the hottest open source candidates?
We use activemq on fabulously40.com. Works well when you have a user sending out a PM to his or her 10,000 or so friends. I honestly don't see why the ruby camp had to re-invent the wheel with starling (twitter) or beanstalkd. ActiveMQ is cross-platform, supports multiple languages via the STOMP protocol.
Just my two cents.
This article is bordering on the silly given the obviousness.
Thanks for the tip. Whats alot more interesting is to look at systems that use alot of JMS and what a nightmare they are to maintain.
And also the complete and utter failure of message bus systems enterprise vendors have been hawking for years.
Truly asynchronous processing (as opposed to the simple batch examples you provide) is a necessary evil, but its not cool, fun or even to be described as "good".
i also have not been convinced by any of the current open source queues that i have come across. between this and me wanting to continue learn erlang, i have started a restful queue in erlang. it is definitely not anywhere near stable, but i hope to make it so before too long. have any bright ideas or comments?
http://github.com/iamjwc/eq
rabbitMQ ?
Post a Comment