This was originally a reply to this post about instant messaging, but it grew in length and got other points in it, so I decided to make it a proper post.
I did some reading over at Jabber, and came across a thing which is still in development called Net::Jabber, which is a perl module for being a Jabber client. This would do the part where the lj account sends notifications and such to users.
However, the Net::Jabber module also does something else to do with the server. I didn't quite understand what it was, since it used some terminology I obviously missed when I was looking over some of the jabber tech documents, and when I tried to download it the server wouldn't answer me, but I'm hoping it will allow the jabber server to query the mySQL database to get user details. I'll have another go at finding out another time, or perhaps someone else can go and read and see if they catch what I missed!
Another thing I thought of was perhaps extending the Jabber protocol to do LiveJournally stuff: that is, LiveJournal protocol requests encapsulated in XML. That really depends on how much we can extend Jabber, and how difficult it will be. If it's going to be a big thing to do, it's probably not worth it.
I'd be interested to hear the views of others on using Jabber as:
- a notification mechanism (comment posted, new support request, new friends post...)
- an instant-message service where users become firstname.lastname@example.org, email@example.com etc.
- a slighly different way into the LiveJournal client-server protocol.
My initial idea of the implementation on the client-side is this: From the users' point of view, the more advanced clients (read: lj-win32 and loserjabber) would have the above integrated into them, or perhaps have a separate applet with them to do this stuff, so that the users won't know that jabber is behind it, they'll just get notification messages from the server and perhaps messages from other users. The users will be able to set whether or not they are visible to their friends, and the clients can tell the server whether they can do the IM bit, or if they just want notifications from lj sent to them (no messages from other users.) I know this isn't a very good description, but I don't want to start getting into the details of implementation until it's been discussed, and people have a chance to say what they think about this idea, and most importantly what brad feels about it. Those more in the know might also comment on what the current bandwidth usage is like, and what running a jabber server on LJ would do to that...
Oh, and thanks to Cryo for causing me to go off on this mad train of thought! :)