Here are some numbers describing group chat, which were captured at 11am one day: This is the most obvious use that we'd put message queues to, and it's also one of the only use cases up there that is a current pain point for Residents. The primary use case that we examined was that of group chat. Discussing the protocol by which the viewer sends and receives messages with the server is far outside the scope of this research. Note that we do not intend to expose the message queue system directly to the viewer we would use it instead for behind-the-scenes implementation of the above use cases. Many other uses that we haven't put up there would arise when developing various applications.
#EJABBERD SUCKS REGISTRATION#
![ejabberd sucks ejabberd sucks](http://bradfitz.com/talks/2011-09-Djangocon/img/mosaic/2.jpg)
Pretty much all of the message queue systems we investigated are intended to maximize message throughput rather than number of consumers. This means that we have to plan for millions, and probably tens or hundreds of millions, of message queues, since we want whatever system we choose to last us until then. Our largest use case would be of the same order of magnitude as registered users. Our use cases mostly involve very large numbers of queues the smallest number we're even considering is double the number of concurrent users. We investigated around 15 open source systems that were explicitly designed for message queueing and found that none of them achieved this ideal. Unfortunately it seems as though this dream, like so many others, is unattainable by any currently available software. It would act as a well-known cluster to which senders or receivers of messages could connect, and be able to communicate asynchronously to or from anywhere else on the grid. Ideally we'd have a completely scaleable system that clients could treat as singular black box.
![ejabberd sucks ejabberd sucks](http://bradfitz.com/talks/2011-09-Djangocon/img/contributing-memcached.png)
Message queuing systems allow systems that send messages to not have to worry about how they will be delivered, and allow consumers of messages to gather whichever ones interest them, at their own pace. One of the infrastructure tools that we've identified for the future internal architecture of Second Life is messaging.