What are Collapsed Reply Threads (CRT)?
Collapsed Reply Threads (CRT) offer an enhanced experience for communicating in threads that keeps your channels and conversations organized. With CRT, you can now navigate and follow conversations more easily, and keep discussion threads focused. To learn more about CRT, check out the end-user documentation and tutorial.
General availability of CRT with Mattermost v7.0 delivers a number of new configuration options, in addition to performance enhancements for enabling the feature in large scale self-managed deployments, detailed further in this document.
What are the system requirements to enable CRT?
Before enabling Collapsed Reply Threads in your self-managed Mattermost instance, please ensure your system meets the following requirements:
- Upgrade your Mattermost Server to v7.0 or later. See our Upgrade Mattermost Server documentation for details.
- Ensure your system hardware meets our minimum requirements. See our documentation for more information on architecture and scaling, and hardware requirements for specific recommendations. We strongly recommend running the Mattermost application server and database server on separate machines for optimal performance.
- Tune your database configuration to utilize database resources efficiently and maximize performance. Please reference our tuning guidelines for MySQL or PostgreSQL, depending on your database type.
Additionally, to maintain the health of your database, we encourage monitoring how frequently vacuuming runs for your tables and tune accordingly. Please see related vacuuming documentation for PostgreSQL and MySQL.
- Mattermost Enterprise customers should install and configure performance monitoring tools including Prometheus and Grafana to track system health and monitor database resource usage. See our performance monitoring product documentation for details.
What steps do I need to follow to enable CRT?
Go to System Console > Site Configuration > Posts, then enable Collapsed Reply Threads.
Before enabling CRT, please follow these steps:
- Ensure your Mattermost deployment meets our system requirements detailed above.
- Check the configuration of the Automatically Follow Threads setting in the System Console > Site Configuration > Posts. When Automatically Follow Threads is enabled, threads a user starts, participates in, or is mentioned in are automatically followed. A new
Threadstable is added in the database that tracks threads and thread participants, and a
Threadmembershipstable tracks followed threads for each user and the read or unread state of each followed thread. Automatically Follow Threads must be enabled to support Collapsed Reply Threads.
- If Automatically Follow Threads is disabled, we recommend enabling it for at least a few weeks before you enable Collapsed Reply Threads, since enabling this setting doesn’t retroactively follow threads for conversations prior to the setting being enabled. Without performing this step, users will be missing recent threads and conversations in the Threads view when CRT is enabled for the first time.
- If Automatically Follow Threads is already enabled, you may proceed to enable CRT since recent thread metadata has already been populated in the database. Users will have in Threads view any threads started or participated in after Automatically Follow Threads was enabled.
- Now you may enable CRT by going to System Console > Site Configuration > Posts and then enable Collapsed Reply Threads in any desired configuration detailed below.
What configuration options are available for Collapsed Reply Threads?
You may choose to configure CRT in any of the following configurations:
- Off: Users cannot access Collapsed Reply Threads.
- Default Off: Users may choose to enable Collapsed Reply Threads in Settings, but will not see the feature by default.
- Default On: Users see Collapsed Reply Threads by default and can optionally disable it for themselves in Settings.
- Always On: All users must use Collapsed Reply Threads.
For the optimal user experience and to ensure consistency in how users read and respond to threaded conversations, we recommend the Always On configuration option.
What performance testing has been done to ensure CRT can be enabled in enterprise scale deployments?
Mattermost v7.0 introduces a number of server performance enhancements that allow customers with large scale self-managed deployments to enable CRT without increasing hardware resources beyond our minimum requirements.
To verify these enhancements, we’ve extended our load testing framework with support for threaded conversations and user actions, and refactored database calls to measure execution time with more granularity. These load testing improvements allow us to simulate real-world usage of deployments at scale with Collapsed Reply Threads enabled.
Our load testing setup consisted of MySQL and PostgreSQL load testing clusters using the same baseline setup, each with one cluster configured to test CRT disabled and another cluster configured with CRT enabled. The results were compared to estimate the resource demand added by enabling CRT.
The results suggest that enabling CRT is equally performant, if not more performant, when compared to the cluster with CRT disabled. While not exhaustively tested for all potential deployment sizes and configurations, this conclusion is expected to hold for deployments that vary both in hardware capacity and amount of data/users. For additional details on the load test configuration and results, see the report here.
For deployments at enterprise scale, we highly recommended using the Mattermost open source load testing framework to simulate usage of your system at full scale. Load testing prior to enabling Collapsed Reply Threads into production will help to identify if the current server hardware and configuration is sufficient to support the expected demand.