We simulated variable message send rates, ramp up windows, and concurrent user spikes to establish a baseline.
#MATTERMOST SYSTEM REQUIREMENTS CODE#
To test Mattermost’s ability to adapt to these conditions, our load tests sought to identify major bottlenecks in architecture and server code that might impact performance. After careful consideration of the necessary factors, we asked ourselves: could Mattermost reach Uber-scale? The next logical step was to assess whether or not the platform could both keep up with Uber’s hypergrowth and sustain our operational dependency on chat. Furthermore, their client user interfaces were similar to those of chat applications popular among Uber employees. Mattermost exceeded our minimum performance expectations and aligned nicely with Uber’s existing tech stack. Figure 1b: Entit圜onfig represented the basic communication needs of a user on our platform.Īfter months of testing and vendor vetting, we zeroed in on Mattermost. Over time, the test harness grew to offer greater functionality and better simulate complex user scenarios. Combined with Go’s native coroutines, it was easy to hit our simulation goals. In this testing environment, the simple Go struct Entit圜onfig (Figure 1b, below) encapsulated a user that could log in, join channels, and send messages. The test suite’s design (Figure 1a, above) was extremely simple this ensured that product claims could be validated with minimal effort on our end. With the remaining options, we wrote a test harness to simulate thousands of users.
![mattermost system requirements mattermost system requirements](http://s3.amazonaws.com/content.systemrequirementslab.com/global/assets/images/boxshots/figures/ac-oddyssey-requirements-pc.jpg)
Figure 1a: The design of our test entity, Thread, was as uncomplicated as possible to focus our attention on quickly validating product claims. Right away, many of these platforms were unable to perform these basic load tests. For example, one of our initial goals was to simulate the chat behaviors of 50,000 users in a single chat environment. Since our main requirement was the capability of supporting Uber’s growth, we paid special attention to chat platforms known for their scalability.Īs part of our performance validation, we pushed each open source product to their breaking points. We assessed a variety of XMPP, Erlang, and JavaScript-based options. To get the most out of our hybrid build approach, we needed a powerful open source building block with a versatile API, high quality codebase, and a vibrant development community. This option was particularly appealing given our desire to directly influence roadmaps and control long-term recurring costs, which would have been more difficult if we had started from scratch. To expedite the development process, we decided to build our solution on top of an open source platform. In this article, we discuss how in just three months our team transitioned the company to a new solution capable of reliably delivering over one million messages per day to tens of thousands of users, all in one unified chat environment. So after testing multiple off-the-shelf alternatives, we built uChat, our custom in-house messaging platform, by leveraging open source platform Mattermost and Puppet, the Uber standard for deployment configuration management. While we evaluated Internet Relay Chat (IRC) and many other popular chat clients, it became clear that there was no turnkey third-party solution able to meet Uber’s core requirements. We also needed a platform that could easily integrate with a variety of internal engineering, business, and operational tools. To start, we needed something that could scale to support our growing employee population and, as a byproduct, control costs. To accomplish this, we established a few core requirements. With operations in over 620 cities, it was paramount for us to identify a chat solution that would enable Uber employees to reliably communicate on desktop and mobile regardless of where they were in the world.
![mattermost system requirements mattermost system requirements](https://intl.siyavula.com/read/cat/grade-11-cat/hardware-software-and-computer-management/images/fig5_1.jpg)
With user satisfaction at an all-time low, we needed a new solution.
![mattermost system requirements mattermost system requirements](https://jelvix.com/wp-content/uploads/2018/05/system-requirements.jpg)
There were app crashes, performance hiccups, and outages that crippled our company’s ability to effectively communicate online. Two years ago, Uber’s previous chat application began showing signs that it would not be able to adapt to our growth.