Plurk: Instant conversations using Comet

Plurk Comet

The web is becoming more and more realtime and we at Plurk are following the trend. Yesterday we released instant notifications so users can have conversations with sub-second delays - - it's like group based instant messaging.

Implementing this has not been easy given the complexities and size of Plurk, some problems include:

  • huge amount of active users - hundred thousands of online users at once
  • huge amount of usage - to this day our users have posted over 1 billion unique messages
  • complexity of Plurk's features - such as mute, responses seen, private plurks etc.

A demo can be seen here - if that's too boring sign up, invite some friends and try it out live:

Our implementation uses node.js and a big kudos goes to them for their wonderful work.

We have rewritten to node.js from Java+JBoss Netty, because the old solution had scalability problems. We have also been able to build a very sophisticated messaging system given JavaScript expressiveness and the simplicity of node.js. Generally, we have found node.js and V8 very impressive - and it uses about 10 times less memory than Java+Netty did. The bottom line is if you implement anything comet related - - try to use node.js!

We may release our comet implementation in the future, but currently it's very tied up to Plurk's architecture.

I have already shared a lot of my knowledge on comet - including code and a talk about node.js for Taipei Open Source Group. Check out these posts for more info:

30. Jan 2010 Code · Plurk · Tips
© Amir Salihefendic