I am designing/developing new messenger service (just like Yahoo, Gtalk messengers). So, my clients will be continuously connected to the servers. I like to know how such servers can be maintained (applying fixes, upgrades etc) while clients are still connected?
One traditional way is to disconnect clients and bring down servers, resulting in downtime. However, this is not ideal solution because fixes, enhancements could be frequent. I hardly seen Yahoo, Gtalk messenger services are down for maintenance. So I was wondering how they could have done this? (I believe this is design decision)
Any thoughts/links would be great.