Thoughts On Scalable XMPP Bots  It used to be that chat bots
were toy projects written by young programmers to impress their
friends in their favorite IRC channel. These days, some bots are
much more ambitious projects. For example, both and Twitter are
using XMPP bots to distribute messages to users in real-time. At
Chesspark, we have chess playing bots that must be able to play
hundreds of games at a time. It's no longer good enough just to
have a bot; now the bots have to scale.  Client Bots  The first
step along the bot programmer's journey is to write the bot as
an XMPP client. Many client libraries already exist, and the
client protocol is well understood. It doesn't take long to have
a working echo bot in any number of languages.  There is a huge
problem with client bots - rosters. If part of the client bot's
functionality depends on subscribing to the presence of its
users, the roster size becomes the limit to scalability. There
are two reasons for this.  First, querying large rosters from
persistent