Just read this interesting piece on Twitter vs GupShup (the de-facto micro blogging service in India):<br><a href="http://anand.typepad.com/datawocky/2008/06/indias-sms-gupshup-has-3x-the-usage-of-twitter-and-no-downtime.html">http://anand.typepad.com/datawocky/2008/06/indias-sms-gupshup-has-3x-the-usage-of-twitter-and-no-downtime.html</a><br>
<br>From the article:<br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">I'll let the numbers speak for themselves:<br><ul><li><b>
Users:</b> Twitter (1+ million), SMS GupShup (7 million)</li><li><b>Messages per day: </b>Twitter (3 million); SMS GupShup (10+ million)</li></ul></blockquote><br>This passage struck me as sounding like it is built on Erlang, or at least Erlang principles (my emphasis):<br>
<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">GupShup also uses an object architecture (called the "objectpool") which allows each task to be componentized and run separately - this helps immensely with <i>reliability</i> (can automatically handle machine failure) and <i>scalability</i> (can scale dynamically to handle increased load). The objectpool model allows each module to be run as <i>multiple parallel instances</i> - each of them doing a part of the work. They can be run on <i>different machines</i>, can be <i>started/stopped independently</i>, without affecting each other. So the "receiver", the "sender", and the "ad server" all run as multiple instances. As traffic scales, they can just add more hardware -- no re-architecting. If one machine fails, the instance is restarted on a different machine.</blockquote>
<div><br>Sounds like a perfect fit for Erlang. Should be less lines of code too, I presume. Would it be faster, though?<br></div><br>Cheers!<br>Adam