There's a discussion over in lj_biz about chat features at LiveJournal. insomnia is suggesting that, for now, communities use AIM's chat facilities until LiveJournal develops a 'really kickass' solution. Here is my proposal, which was actually mostly 'inspired by' shaggy who replied to my 'rambling-rubbish-as-I-think-about-it' comment.
The LiveJournal dev team has talked before about running an IRC server for LiveJournal, so this isn't really a wholly new idea, but in order to achieve a good tie-in, my proposal is as follows...
Firstly, we grab a DALnet-derived ircd, such as the one SorceryNet use, or indeed, the one DALnet use! That can be configured to allow the connection of another server with permission to 'hack modes' of the main server. This other server introduces two fake clients, usually called NickServ and ChanServ, but we could call them whatever we want, or unify them into one "LJ" user. This fake clients are then what looks after everything to make sure no bad stuff is a-happening.
The second server, the services server, only needs one open socket connection to the main ircd. It will be told about every client joining and leaving the server, and all of the channels they join and part, and such things. The services server then acts on this information by requesting that users give a password for using a particular nickname, or opping people in channels.
The LiveJournal tie-in comes in the form of having all users having their LiveJournal username as their username (most on opn #livejournal do this already) and services requiring their LiveJournal password to allow them to use that nickname. If we use an ircd which supports 'hurting' users, the services can stop clients doing anything but talking to services or IRCops until they identify with services. (Thanks to some of the SorceryNet IRCops for confirming this for me ;))
Since IRC gets unweildy when there are many channels available (people can't find anything in particular because the list is too damn long) I think we should automatically register channels for communities created on the LiveJournal site with the community creator as the channel 'founder' who has permission to add operators, etc. If LiveJournal users can depend on their being a channel for every community, they won't be lost when looking for something since they can use the many search features available on the site.
Our special services would not allow on-IRC registration like traditional IRC services. The registrations would be entirely based on the LiveJournal database, for ease of management. An extra table or two would be needed in the database to store the usernames of channel(community) operators, channel topics and settings such as "only community members may join" etc.
Finally, our services could be written in perl for ease of integration with the existing LJ codebase, and also because this is what most of our available developers are most familiar with.
Any comments, suggestions for improvement of this proposal, and general bellowing at me welcome. ;)