We built our messaging with eJabberd :
- One-to-one messaging
- Groupchat: MUC (Multi-User Chat)
It is the de facto XMPP server in the world — specifically designed for enterprise purposes: it is fault-tolerant can utilise the resources of multiple clustered machines, and easily scale when more capacity is required (by just adding a box/VM).
Read more about our engineering related to this, here : graph db, messaging broker and chatbot.