Scaling Rocket.Chat

Prev Next

As the number of concurrent users in your workspace increases, system latency may begin to surface. Monitoring performance metrics becomes critical in determining when additional resources or architectural changes are required. A common early indicator is the Rocket.Chat Node process nearing 100% CPU usage, even when overall host CPU utilization remains low. This behavior is expected due to the single-threaded nature of Node.js, which prevents a single process from using multiple CPU cores effectively.

To address this limitation and maintain consistent performance as your workspace grows, you can scale your environment to distribute the load across multiple processes or specialized components.

Choosing a scaling strategy

The appropriate scaling approach depends on how your Rocket.Chat workspace is deployed, and the number of concurrent users.

  • Docker-based deployment: This approach involves running several identical Rocket.Chat instances behind a load balancer. It allows you to utilize multiple CPU cores on a single host or across a cluster of hosts. Each instance handles a portion of the incoming traffic. Refer to Running multiple Rocket.Chat instances guide  for more details.

  • Kubernetes deployments: For maximum efficiency, Rocket.Chat can be broken down into smaller, specialized components (microservices). Instead of scaling the entire application, you can scale only the parts under heavy load. Refer to the Scaling Rocket.Chat with Microservices guide for more details.

For deployments approaching 1,000 concurrent users and above, the microservices architecture is recommended for optimal scalability.

As of December 15, 2023, Rocket.Chat has ceased support for connections from cloud services and official mobile/desktop apps to workspaces running legacy versions outside our support window. Users on unsupported legacy servers are advised to upgrade to the latest Rocket.Chat version to ensure continued access to cloud, mobile, and desktop applications. Each Rocket.Chat version is supported for six months post-release.