An Insight Into Mattermost: The Enterprise Open Source Chat & Team Communication Tool
Hello there, Everyone!!
How is it going? Welcome to 8bitmen.com
This article is a deep dive into the enterprise open source chat & team communication tool Mattermost. How is it different than the other ChatOps tools available, also widely adopted, in the industry like Slack or HipChat? Can we deploy this workplace comm. product on-prem? How smooth is the installation process? Is anyone in the industry using it already?
This write-up is your answer to all the above queries & more.
So, without any further ado. Let’s get on with it.
1. What is Mattermost?
Mattermost is an enterprise open source workplace communication tool. It helps teams collaborate securely & effectively. The USP of the product is its security since it is open source. Organizations can tweak the product as per their requirements & deploy it on premises. It can also be deployed to AWS, Azure & other private clouds.
Mattermost is ideal for companies handling sensitive data like those offering financial, military or healthcare services. When communicating over this open source on-prem tool, the data stays inside the organization’s network, they have the database ownership, so the data is naturally safe from eavesdropping; Mattermost offers a highly secure & private communication environment.
Mattermost is a scalable workplace solution which boosts the work efficiency by notches, at the same time complying to the organization’s security & audit requirements.
The product is adopted by big guns in the industry & has a pretty solid track record. I have discussed some of the industry use cases up ahead in the write-up.
Now, let’s have a look into some of the features, offered by the tool.
2. What are the Features Offered by Mattermost?
This is how the product workspace looks like.
The interface is largely similar to Slack. With it, developers can have direct 1:1 communication or a group messaging. Teams can create channels, both public & private, based on topics, specific meeting agendas, or groups; Needless to say, these kinds of workplace communication tools reduce the email clutter by a large extent.
With Mattermost teams can share files with each other, run search over the message channels. The application can be used across devices like mobile & desktop, the data unification is taken care of by the tool.
The product has a scalable design inherently, it offers cluster-based high availability deployments with horizontal scaling & advanced performance monitoring. I will get into the underlying architecture of the product up ahead in the article.
Besides the open source solution, there are several custom extensions & features offered by the core Mattermost team like the integration of the communication tool with the Identity management system of the organization. Advanced access controls, monitoring, scalability & tech support. These features make mattermost truly stand out in the market as opposed to the other comm. tools available.
Code visibility provides a comprehensive understanding, customization & deeper control of the system.
Teams can easily tweak the product to match their business models & needs. In case you are not in the mood of customizing stuff & need to jump right into the, begin using it, part, we can deploy the product on the fly with pre-built open source images which support AWS, Azure & Google cloud.
Also, since the product is open source it rules out any possibility of lock-in.
Security with Mattermost
Mattermost has a dedicated team working on the security of the product. The product goes through multiple rounds of penetration testing, security analysis, internal reviews & is compliant with security standards & policy & stuff.
Some of the highlights of the security features of the product are:
1. User sessions across the web, PC & mobile can be remotely revoked.
2. Multi-factor authentication
3. Teams, users & everything can be controlled through a web-based system user interface.
4. Brute force attacks protection & encryption of the data.
5. Disaster recovery, intrusion detection, continual archiving.
Should you wish to read more on security, navigate to the mattermost security page;
3. An Insight into the Mattermost Architecture
This is the architectural diagram of the tool. Which consists of several modules working in conjunction. Let’s begin with the Mattermost server.
Mattermost is a single compiled Go binary which is exposed as a RESTful service. The server module comprises of several services working together such as the Authentication client, Authentication provider, the notification service & the data management service. Mattermost is written in Golang & React & runs as a single Linux binary with MySQL or PostgreSQL.
This open source tool has several editions based on the pricing plan. The authentication client enables the end users to login to Mattermost via the email credentials, in the Team edition.
Going higher up the pricing plan users can also be authenticated by the Active directory or the LDAP, further Mattermost support offers login via several single sign-on providers such as ADFS, OneLogin & Okta.
The authentication provider makes Mattermost authenticate other third-party services like the GitLab etc.
Being pretty obvious, the notification service has the role of notifying the users when a respective event is triggered.
The data management service takes care of all the data going to & fro. It connects with the data solutions like the database, file storage etc.
The architectural design has a proxy server in between the user requests & the tool’s server, which enhances the security to much extent. It also helps manage & monitor the traffic hitting the communication tool.
The network protocols used by it are HTTPS & WSS, WSS is the secure web socket protocol. The web socket connection enables the real-time notifications & message exchange between the client & the server.
In case of unavailability of WSS connection, the system reverts to HTTPS.
Speaking of databases, Mattermost uses MySQL & PostgreSQL to handle data. Also, to run a full-text search.
Time for some use cases?
4. Real World Industry Use Cases of Mattermost
4.1 Wargaming Uses Mattermost for Team Collaboration & Faster Decision Making
Wargaming is one of the big guns in the gaming industry. Based out of Cyprus, it has more than 20 bases across the world & serves around 180 million players. It is best known for the game World of Tanks.
It initially used slack as the communication tool & then finally deployed Mattermost as an on-prem setup.
The need for a good on-prem communication & team collaboration was intense. Serving 180 million players is no simple feat. With over 68 teams spread across the continents, the entire product efficiency was based on the effective communication of teams. Be it designers, backend coders, concept artists, they needed to communicate in real time.
Wargaming research on several tools available in the market & zeroed in on Mattermost, impressed by its state-of-the-art technology & superior security.
Mattermost served their need smoothly, integrating with the existing legacy systems being open source. It scaled pretty well due to its high available & scalable architectural design. The factor which really shined was the satisfaction of the teams using Mattermost.
4.2 Uber’s uChat A Custom Solution Built on Mattermost
Uber uses Mattermost to handle 70,000 concurrent connections sending approx. 200 messages per second. The requirement was a scalable & secure communication solution.
Unsatisfied with the existing market solutions, it built its own workflow communication tool uChat.
uChat contained features which no other product in the market offered. Like scalable group messaging with mentions, hashtags & other features which would scale to thousands of concurrent users. Flexibility, reliability, comprehensive control, on-prem solution.
With uChat Uber used approx. 20k chatrooms between its diverse teams for communication.
Some other important use cases of Mattermost:
National University of Singapore uses Mattermost to facilitate student-faculty collaboration.
US federal agency uses Mattermost for agency-wide collaboration.
Let’s talk a bit about Mattermost & Slack. Which tool which one should go for? Which should be ideal for your business?
5. Mattermost vs Slack, Which Tool You Should Go For?
Slack is undoubtedly the most popular SaaS workplace communication tool in the industry. So, if you are a small company, your needs are simple. The communication which you have over chat is not really data sensitive. And if you do not need a unique customized solution which the workplace tools do not offer by default.
Go ahead with Slack, do not give it a second thought.
Mattermost, on the other hand, is more suited to teams dealing with sensitive data. Handling too much data, & tools like Slack is having a hard time scaling to your needs.
Just like what happened with Uber. Go ahead with Mattermost. It’s open source, first thing. We can’t really compare an open source solution with proprietary ones. Third party solutions will always be falling behind in terms of features when compared with an open source solution. There is only so much their in-house developers can do, as opposed to the open source community.
Also, we have already gone through the use cases & you are always a better judge of which tool your business needs.
6. More On the Blog
Well, Guys!! This is pretty much it on Mattermost. What is it & stuff?
If you liked the article, do let me know in the comments. Share your thoughts.
I’ll see you in the next article.
- Distributed Systems, Scalability & System Design #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design