Блин, а вот мне стало интересно
Матрикс в теории позволяет прозрачно мигрировать между имплементациями сервера
Заводим второй сервер рядом, кладём ему публичные ключи старого, по протоколу все синхронизируем, дропаем старый
Правда непонятно, что с сессиями юзеров делать :D