We’ve been doing some backend work in two areas recently.
1. Scaling. We’ve grown by something like 300% in the last 12 months, and we need to provision for even faster growth in 2010. We’ve expanded from having a single backend for Widgets, to having 4 backend servers. This allows us to grow, and also gives us failover, and an easy way to update backends without having to kick everyone off. If you run a network, you do not need to modify anything. All widget backends use the same IP address for outgoing IRC connections.
2. Network communications. We want to ensure that the Mibbit client is the fastest it can be, and provides the best experience for users. We also want to ensure it’s optimized in terms of bandwidth usage. This means looking for new technologies, and new improvements we can make.
We’ve just updated the backends, and here’s the main changes you’ll find:
- WebSocket support – WebSocket is a system that allows a bidirectional tcp connection between browser and server. Mibbit can use this in place of Comet, in order to cut bandwidth and provide a faster experience for users. WebSocket is currently supported in latest Chrome dev channel. If you haven’t tried it yet, Chrome is an awesome webbrowser, especially for webapps like Mibbit.
- Compression – For those not using WebSockets, we’re now able to compress data sent out to clients from the server. This once again means far less bandwidth, and a faster experience.
- Lag monitor - You may have noticed on the latest main client, it shows the current lag between your browser and the mibbit server. It does this by sending a ping every 5 minutes and measuring the time to get a pong. You can also click it to request a lag check. Note that this is only between you and the Mibbit server, not to any IRC networks. We plan to implement some lag features for IRC later on. The lag is also logged on the Mibbit server in order for us to improve the user experience. For example if we find that lag from browsers in the UK is high, we may setup a UK backend.
Once again, thanks for your understanding when we do have to restart a backend, we’re nearing a time now where we can do complete rolling updates and not have to kick anyone off.
It’s a real privilege to work on something that is used by so many people, and we really do appreciate your use of Mibbit. If you have any thoughts, ideas or gripes, please do feel free to catch me on irc.mibbit.net.
Happy holidays Mibbitians!