Been playing lately with App Engine. My first experiment is
Atrack, a (BitTorrent) tracker that relies
purely on memcached, it is fast and efficient, and less than
100 lines of code.
There is demo open
installation in appspot, add
http://bittrk.appspot.com/announce (or if you are paranoid
https://bittrk.appspot.com/announce) to any torrents you
like, I could use the stress testing!
So far I'm tracking a few thousand torrents (after
torrentfreak broke the news) and barely using %1 of the App
Engine quota.
Of course one of the cool things about atrack is that there
is no way for me to really what torrents or how many
torrents exactly are being tracked! This makes me happy but
it is hard to shake the curiosity to know who and what for
people are using your code! Ah, the wonders of privacy :))
While reading on the Bittorrent tracking protocol I realized
that the problem it solves is much more general and a subset
could easily be used for decentralized online gaming, chat
systems, and to help other 'grid' like applications find
each other inside the cloud.
So I started to write up an spec for Ntrack, a
generalized and simplified tracker scheme, that should be
backwards compatible with bittorrent clients and trackers,
but makes all the bt-specific functionality optional. This
is pretty much the subset implemented by atrack; I'm working
on a distributed chat system that uses it and I hope others
come up with other apps that take advantage of this.
P.S.: I know others have built trackers on app engine in the
past, but they seem to be out of quota most of the time, and
by looking at the source this is not surprising given how
over-engineered they are. *sigh*
Share and enjoy.