[Kolab-devel] kolab and real-time communication (chat, etc)

Aaron Seigo aseigo at mykolab.com
Tue Nov 22 11:02:44 CET 2016


On 22.11.2016 10:20, Aaron Seigo wrote:
> Need to look at the integration, multi-tennant, and scalability
> stories. Will do so today.

Now it's coming back to me .. :) I had looked at this quite some time 
ago, and I begin to recall my concerns.

LDAP integration is essentially "copy the users from LDAP periodically 
into our own database". Not particularly pretty, tbh. And as usual, the 
LDAP auth flexibility is very simplistic; definitely good enough for 
single-site installation, certainly a typical use case.

It also uses mongo db. Not a good option for us at all. (Happy to go 
into why that is in another thread if anyone cares :) pgsql support has 
been asked for for some time, still isn't there. This is concerning.

Javascript throughout is a little concerning for a real-time application 
that needs to both scale and have high uptime; that has not yet been 
shown to be server-side javascript's strengths. (It has strengths, but 
they lay elsewhere.)

It's a large and complex application, with dozens of packages and 
packing some 140kloc. They picked a platform on which they have to 
implement a lot from the ground up.

HA and clustering is somewhere between "not easy and untested" and "not 
existent". This is something we could perhaps contribute to. It's 
something we get for free, and very well tested, with Phoenix pub/sub, 
however.



Better things:

Federation is done via matrix, which is a nice touch.

The mobile and desktop app support is not great, but improving. 
Apparently libpurple has (some?) support for it now, and there is an 
xmpp bridge, so while you perhaps don't get 100% feature parity, it 
seems passable.

The integration story is not horrible, though. The REST API is 
sufficient for straight-forward use cases (e.g. "add chat to 
collaborative editing", "launch a chat room from a calendar invite"), 
but deeper integration seems to require adopting the meteor app model 
more broadly. So this is actually a fairly decent aspect.


It's a bit unfortunate as it is actively developed and has a rather 
remarkable feature set. The downsides are just very difficult to swallow 
for our target uses and deployments :(

-- 
Aaron Seigo


More information about the devel mailing list