Unfortunately our neo4j setup as it stands really doesn't scale. At an application-level we're built error-handling to gracefully handle the frequent outages we experience running it.
These are probably our fault, rather than a failing in the product, but I've wanted to replace the current neo4j-based suggestion algo with a new one that uses batching/clustering for a while. As soon as I get a chance, I would like to remove the dependency we have on neo4j.
Additionally, Neo4j does support clustering with their Enterprise edition. It also has much better tooling (better metrics/logging, backups, etc.). It is AGPL licensed, so there's no reason not to use it really.
Since it uses Gremlin, you should not have that big a problem in porting.
If you want pure Open Source then Titan might be a good fit for Gitter. http://titan.thinkaurelius.com/
Thanks for your recommendations. I'll definitely check them out.
That's why in recommendations, I usually filter them out b degree (which is a constant value read).
MATCH (r:Room) WHERE size( (r)<-[:MEMBER]-() ) < 5000) ...
You're also not using directions in your queries, which will also help.
I looked at your other queries, they can also be improved easily, if you want to I can help you do that. Just need some sample data or a read-only access to the db. Just ping me at [email protected].
I'm not going to be changing anything around the suggestions any time soon, but who should I get in touch with when I do?
Given the requirements, I actually think this project looks rather clean between the docker-compose-file and the npm dependencies.
I very much doubt it can compete with Mattermost or Rocket.chat for self-host for small organizations - but I'm really happy to see this thing open sourced!
I much prefer it to be opened up as soon as possible, and then flicked on later.
If there's one thing I'd like to see (beyond a reduction in what appears to be a default of three? mongodb instances) - it would probably be a set of juju charms for bringing the thing up under lxc/lxd on Ubuntu.
I just revisited the combination of juju+ubuntu+lxd - and while I was skeptical when juju was introduced, it appears to be a rather sane toolkit for automating deployment IMNHO.
For those interested, if you start here:
https://insights.ubuntu.com/2016/06/08/lxd-2-0-lxd-and-juju/
you might think that this thing is insane overkill - but if you start at the beginning of the series[s], you will (or I did) get a warm fuzzy feeling about how much fun it is to play with lxd on top of zfs. I suppose some people think docker is just as fun (and warm and fuzzy) - but I don't know. LXD does feel like it combines the good parts of linux with the good parts of bsd jails.
[s] https://insights.ubuntu.com/2016/03/14/the-lxd-2-0-story-pro...