I was developing a chat system for a company, and played around a lot of tools available to do so. One of my most interesting journey was through Pheonix framework (Elixer Language! phew)
I ended up using an MQTT based server to manage chat. I had used MQTT for a few device based communications I did for IoT projects. Used an EMQ server for my broker and this js library for both FE and BE. Setting it up was a cakewalk.
Now I had a few questions when I was adding few more features. How should I scale my channels/messages ratio. How many subscriptions are too many subscriptions ?
I would have access to the usage so would have data to base these on. Any text on these would be appreciated.
Adding few facts about the application. The chat is used in an application which kindof conducts meetings. Here are some rough figures for the same.
Average size of a meeting = 25 people (Can go upto 10,000)
Average number of meetings a day = 50 (currently)
Messages per minute in a meeting = 20