Movim is a distributed social networking platform founded in 2010. It can be accessed using existing XMPP clients and Jabber accounts, and is a free and open source software licensed under the AGPL.
With version 0.12 released in October, Movim migrated its official server to ejabberd. Before, they were using Metronome, a Prosody fork. Today, we are chatting with Timothée Jaussoin, the founder of Movim, about this very complex migration.
Marek Foss: I understand your previous setup used Metronome. What was the initial advantage of it?
Timothée Jaussoin: We migrated to Metronome a couple of years ago from ejabberd, because it was the only “light” server back then that was able to offer a proper Pubsub implementation. It was, in fact, developed in partnership with the Jappix project (XMPP social network) that was also using Pubsub. ejabberd back then was quite heavy to run, and had crashes as well as bugs in the Pubsub component.
MF: What caused your decision to migrate back to ejabberd?
TJ: I chose to move back to ejabberd, because Metronome was getting outdated and Prosody was not “Pubsub ready”. Metronome development stalled, which left us with open bugs and no implementation for the new things that were coming to XMPP (for example MAM).
MF: Indeed, ejabberd is now receiving regular monthly updates, with fixes and new features. How long did it take to prepare for the migration?
TJ: The migration took several months, because the migration script “prosody2ejabberd” (that works also for Metronome) was incomplete. With the help of Holger Weiß, Evgeny Khramtsov and especially Christophe Romain, we worked on it for weeks to be sure that all the important information were migrated from the Metronome flat files to the ejabberd databases (Mnesia or SQL). Note that the scripts can import Pubsub nodes as well as MUC and accounts.
MF: And how long did the actual migration take?
TJ: After performing the proper backups, the migration took a weekend. I found a final issue in the script that was a bit difficult to figure out (wrong order of the imported items for the Pubsub nodes). With that resolved, everything went quickly.
MF: Now that the migration is complete, what other benefits of ejabberd do you see apart from the ability to connect many simultaneous users you mentioned in your announcement?
TJ: We now have a proper packaging for our Linux distribution – Debian, which certainly makes it easier to maintain. There’s also an improved scalability and more stable CPU and memory consumption, which helps to predict hardware requirements. Last but not least, with a reactive and dedicated team like ProcessOne, which is always here to help finding and fixing bugs and implementing new features (like the missing pieces of the Pubsub extension), we now have a backend that can be relied on in the long term.
MF: Do you think ejabberd will help you in Movim’s growth?
TJ: ejabberd will definitely help! Even if I see ejabberd more as a tool that needs integration and tuning to create a proper platform, ejabberd seems to be the more serious solution to build proper messaging systems using the XMPP protocol.
MF: You also created an ejabberd Movim config that you use, so other Movim instances should also use ejabberd – am I right?
TJ: Yes, ejabberd is the recommended server to use with Movim, even if we are still working with the Prosody team to have a good compatibility with the project in the future. Prosody is used a lot for small self-hosted servers, where Movim could also be installed next to it. The configuration on our Wiki is indeed here to help administrators to setup properly an ejabberd server to make it work with Movim.
MF: Cool! So Movim is not only distributed, but also cross-platform, and compatible with both big and small servers. Thanks for the chat, Timothée, and good luck to you and the rest of the Movim team!
TJ: Thank you.
We encourage all projects that are open source, use functional programming and XMPP solutions. At ProcessOne, the developers behind ejabberd and experts in Erlang, Elixir and Go, we want to hear & chat about your project that uses these technologies – Learn about Go and ProcessOne!