
21 XMPP use-cases and the best ways to achieve them - liotier
https://www.erlang-solutions.com/blog/21-xmpp-use-cases-and-the-best-ways-to-achieve-them.html
======
drdaeman
Sad, neither MongooseIM, nor ejabberd use proper Erlang/OTP SASL release
system, so hot updates can be done with relup
([http://erlang.org/doc/man/relup.html](http://erlang.org/doc/man/relup.html))

Smaller modules can be upgraded from Erlang shell, but it's seems to be
impossible to update a server without shutting it down.

~~~
nyconyco
MongooseIM (and ejabberd) are too big and complex to allow full hot code
reloading. Moreover this feature is quite rarely used in any Erlang software.

~~~
toast0
I'm not sure how you've measured how often hot code reloading is used? I use
it for almost all of my production pushes.

However, I agree that it's generally hard to use it for third party software;
upgrades would either become cumbersome because you have to follow the same
piecewise upgrade process the developer followed, or the developer would have
to do a lot of extra work to ensure upgrades between releases were solid; the
recent addition of atomic loading of multiple modules would probably help.

~~~
nyconyco
I could point to this: [https://stackoverflow.com/questions/31080970/erlang-
hot-code...](https://stackoverflow.com/questions/31080970/erlang-hot-code-
loading-not-widely-used)

------
hdhzy
Good introduction to modern XMPP.

Is there a cross platform, desktop client that strives to implement these
XEPs? Something like Conversations.im for Android.

~~~
catdog
Gajim [1] implements a lot of modern XEPs (directly or through easy to install
plugins), including OMEMO. I don't know how well it works on non Linux systems
(they provide Windows binaries at least).

[1] [https://gajim.org/](https://gajim.org/)

~~~
hdhzy
Yes, feature-wise Gajim is one of the best. Unfortunately the UX is pretty bad
:(

~~~
nyconyco
Indeed Gajim is quite stuck in the past, and I regret to say this as it hurts
me, since I used to be a hardcore fan.

Conversations indeed is very decent.

------
jordanwallwork
I realise this isn't actually relevant to the article content, but it seems
weird that the TOC doesn't contain links to the relevant section. I know it's
pretty short so I can scroll through it quickly, and numbered so I can even
just ctrl+f it, but I don't think I should have to do either of those things.

------
janci
XMPP protocol is so open, that different implementations offer so distinct
features, so the lowest common denominator barely includes sending messages to
each other.

~~~
nyconyco
One cannot not say something is "so open that..." ;-)

But indeed, XMPP is open, very open.

And indeed the major clients usually rely on the old era's ways of thinking
messaging... They a far from contemporary, not only talking of features, but
also the UX (User eXperience) and the general philosophy.

I would recommend the reading of XEP-0387: XMPP Compliance Suites 2017 (and
its successors):
[https://xmpp.org/extensions/xep-0387.html](https://xmpp.org/extensions/xep-0387.html)

But I insist, this one is quite good, honestly: [https://www.erlang-
solutions.com/blog/21-xmpp-use-cases-and-...](https://www.erlang-
solutions.com/blog/21-xmpp-use-cases-and-the-best-ways-to-achieve-them.html)

