Open Source Team Communication Platform : FuguChat
What is Fugu ??
Fugu is a real-time chat communication platform, bringing all your communication at one place. It is a secure Instant Messaging platform targeting small-scale businesses and family to hefty businesses.
Anyone seeking to improve their ability to collaborate with other people and invite them to one spot chat solution, Fugu is the answer. In Fugu you can organize your team communication into groups or chat with a single person. Fugu is powered by spaces where each individual can have their own private or public space where they can interact amongst each other.
Other features which fugu provides includes having separate groups in each space so that you can talk publicly or privately amongst different groups. There are also general groups where you can broadcast message so that every person in your space receive that message. Most common features like emojis, gifs, images, video and file upload are also there.You can login into multiple spaces at the same time, so that you never miss a conversation whether it’s your professional conversation or your personal one, all of it in single mobile app.
How it started ??
We tried a different number of open source solutions like rocket chat, socket.io etc. But none of them could handle the scale at which Jugnoo operates, or had too many issues due to which we had to abandon those products. Finally, we decided to write our own chatting solution which is lightweight, reliable, secure and could handle scale. Hippo started as internal customer-agent chatting platform.
That is how Hippo was created, an internal customer to agent chatting solution platform where customers get their queries resolved in a matter of minutes compared to primitive ticketing solutions where it could take days. Resulting in an overall positive response and happy customers.
With success of Hippo, we thought why not use this for our internal team communication which is as elegant as hippo, so we forked it and created a new product Fugu, providing the same level of consistency and reliability.
Open Sourcing Fugu !!
Since we have achieved this much, we thought of contributing back to open source community, since most of our platform is built upon open source technologies. Fugu is built upon node.js and an open source framework called Faye. Fugu source code can be found here https://github.com/Jungle-Works/fugu .
For the purpose of scaling, we are running our servers in load-balanced fashion by maintaining all the client information in a distributed Redis cluster. So even when two different users are talking to different servers they are talking through a common Redis cluster. By doing this we can ensure cross-communication among different groups and users. This also maintains reliability by removing a single point of failure.
We have achieved a scale of 2K tps in terms of API hits and more than 20K chats in a single day. We are using node.js powered servers backed by MySQL persistence to store all the information we need. Persistence layer can be easily swapped with another SQL like storages such as oracle db, postgres, sqlite etc. Session storage Redis can also be changed easily with nosql structures like couchbase, mongodb etc because of the way how it’s written.
We welcome your contribution and suggestions, if you want to contribute in fugu or have any doubts you can approach us on GitHub.