DESOSA 2022

Mattermost Server

Mattermost (https://mattermost.com) is an open-source cross-platform solution for collaborative communication among teams. Offering security, flexibility, and various integrations with popular third-party services, Mattermost places itself as an open-source alternative to enterprise solutions like Slack and Microsoft Teams.

While Mattermost is a self-hostable solution, Mattermost Inc., the company developing and maintaining the product, funds itself by offering professional support, managed hosting and additional features not included in the open-source version. Starting as a proprietary internal chat tool at SpinPunch game studios, it was later open-sourced, reaching the 1.0 release in 2015. 1.

Multiple teams in the tech industry have been moving towards a sustainable online collaboration model for years now. The bigger change in the face of the pandemic was that all the non-tech industries also depended on online collaboration for their operations. Mattermost markets itself as being effective in multiple industries outside of technology. As a result of the open-source, self-hosting capabilities and further dedicated efforts to secure organization data, a key advantage for Mattermost users is data sovereignty and security. Due to this, Mattermost’s adoption in non-tech industries such as the government, legal, financial and media sectors is also high.

In terms of its capabilities, Mattermost offers all the features of any modern collaboration platform and more. Users in an organization can join different teams and participate in different topics of communication within the team. Furthermore, a user can also participate in multiple organizations at once. The user interface supports rich previews, thread-based replies, reactions, pinned messages and bookmarks. Developers from other companies and independent developers create plugins and integrations for Mattermost as well. Today, the Mattermost marketplace boasts a plethora of add-ons from a simple dice rolling plugin to a full-fledged integration with Gitlab and Jira.

With the growth of its community and the growing move to online work, Mattermost seems to be on an upward slope of adoption and feature additions. Considering the popularity and the scale of the software, it is a compelling option to take up as our project and contribute to its development.

References


  1. Mattermost. (2022 February 19). Wikipedia. https://en.wikipedia.org/wiki/Mattermost ↩︎

Authors

Parinith Shekar

A computer science master student passionate about software engineering, cold coffee and climbing

Mathieu Jung-Muller

French student in engineering doing TUD CS Master for a double degree.

Boriss Bermans

A MSc Computer Science student from Latvia with two years of experience in Full Stack Development.

Mattermost Server - Scalability

Our team had the opportunity to interview Zef Hemel, former TUD student and now Senior Engineering Lead at Mattermost. The interview covered many different topics, both Mattermost in general and very specific questions about the architecture. However, we mostly tried to direct the interview towards scalability. As the lead of the platform teams at Mattermost, Zef has a good vision on the architecture and was able to provide us with great insights regarding Mattermost scalability, especially on the server side, as this is what we focus on.

Mattermost Server - Quality and Evolution

Mattermost is an open-source cross-platform solution for collaborative communication among teams. In previous posts, we discussed Mattermost’s vision and the overview of its architecture. As we extensively covered the key quality attributes in previous posts, we do not address them here. In this post, we look into the processes put in place to ensure good code quality. We also dive deeper into the analysis of hotspot components and future evolution of the various parts of Mattermost.

Mattermost Server - Architectural decisions

Main architecture Mattermost consists of several applications that are interconnected so that the project can run as a whole. Although our project is mattermost-server, we will present Mattermost as a whole in this section, while focusing on mattermost-server in the further sections. Mattermost describes its backend as: “… a single-compiled Go binary that is exposed as a Restful JSON web server with Javascript and Go clients.”1 We observe that the key architectural styles and decisions are:

Mattermost Server - Product Vision and Problem Analysis

In recent times, many workforces and teams across different industries have had to work online and communicate with their colleagues remotely. To facilitate this requirement, organizations readily searched for collaboration platforms to adopt for its employees and their internal operations. While there have been wide adoptions of dedicated solutions for specific requirements like Zoom for video conferencing, generalized collaboration platforms present a different choice for the organizations. In this space, Microsoft Teams, Cisco Webex Teams, and Slack have seen widespread adoption in the recent past.