Documentation Index

Fetch the complete documentation index at: https://docs.rocket.chat/llms.txt

Use this file to discover all available pages before exploring further.

Reference Architectures by Workspace Size

Prev Next

This guide maps workspace size to a recommended Rocket.Chat architecture. It combines the minimum hardware baselines from System Requirements with the scaling patterns from the multi-instance and microservices guides.

These are minimum baselines. Exact sizing depends on your concurrent users and workload. For premium workspaces (Commercial, Government, Defense), consult Rocket.Chat Sales for tailored recommendations.

When to scale

As concurrent users increase, latency may begin to surface. Monitor your performance metrics: a common early indicator is the Rocket.Chat Node.js process nearing 100% CPU usage while overall host CPU utilization remains low. This is expected behavior, because Node.js is single-threaded and one process cannot use multiple CPU cores effectively.

When you see this pattern, move to the next tier. Your deployment method determines the path: Docker-based deployments scale by running multiple identical instances behind a load balancer, while microservices scaling requires Kubernetes.

Pick your tier

Concurrent users

Architecture

Deployment method

Up to 500

Single instance, no high availability

Docker Compose or Podman

500 and above

Multiple instances behind a load balancer, high availability

Docker Compose per server, or Kubernetes

Above 5,000

Microservices with per-service scaling

Kubernetes with the official Helm chart

Up to 500 concurrent users: single instance

One Rocket.Chat instance and a MongoDB replica set on modest hardware. This matches a Starter workspace or a small paid deployment.

  • Rocket.Chat: 2 vCPU (3.5 to 5.0 GHz), 4 GiB memory, 20 GiB storage.

  • MongoDB: 2 vCPU, 4 GiB memory, 10 GiB storage, 3 replica set members (MongoDB Atlas equivalent: M30).

Follow Deploy with Docker and Docker Compose. The official compose repository includes a reverse proxy (Traefik or Nginx) for HTTPS and a monitoring stack with Prometheus, Loki, and Grafana.

Single-instance architecture (up to 500 concurrent users): one Rocket.Chat container behind a reverse proxy, backed by a three-member MongoD

Single-instance architecture (up to 500 concurrent users): one Rocket.Chat container behind a reverse proxy, backed by a three-member MongoDB replica set, with the bundled monitoring stack.


500 or more concurrent users: multiple instances with high availability

Running multiple instances requires a premium plan.

Several Rocket.Chat instances run concurrently, connected to a shared MongoDB replica set and load-balanced through a reverse proxy such as Traefik. NATS enables inter-instance communication. Each instance handles a portion of the incoming traffic, so the workspace uses multiple CPU cores on a single host or across a cluster of hosts.

  • Rocket.Chat (per instance): 4 vCPU (4.0 to 5.0 GHz), 8 to 12 GiB memory, 20 GiB storage.

  • MongoDB: 2 vCPU, 8 to 16 GiB memory, 20 to 80 GiB storage, 3 replica set members.

  • Servers: one for MongoDB and monitoring, one for Traefik, and two or more for Rocket.Chat instances.

To scale vertically on one large host instead, run N−1 Rocket.Chat instances where N is the number of CPU cores. Follow Running Rocket.Chat with Multiple Instances for the full procedure, including rolling updates that keep the workspace available.

High-availability architecture (500 or more concurrent users): Traefik load-balances across two or more Rocket.Chat instances that share one

High-availability architecture (500 or more concurrent users): Traefik load-balances across two or more Rocket.Chat instances that share one MongoDB replica set, with NATS carrying inter-instance events.


Above 5,000 concurrent users: microservices on Kubernetes

Microservices scaling requires a premium plan. Rocket.Chat officially supports microservices only on Kubernetes with the official Helm chart. Direct Docker microservice deployment is not supported.

Core components (WebSocket handling, authentication, presence, authorization) run as independent services, so you can scale a single bottleneck without scaling everything.

  • Rocket.Chat: 16 vCPU, 12 GiB memory, 40 GB storage.

  • MongoDB (per replica): 4 vCPU, 16 GiB memory, 80 GB storage.

  • ddp-streamer: plan 1 pod per 500 concurrent users.

Start with Deploy with Kubernetes, then follow Scaling Rocket.Chat with Microservices.

Microservices architecture (above 5,000 concurrent users)

Microservices architecture (above 5,000 concurrent users): each core service runs and scales independently on Kubernetes, communicating through the NATS message bus. Scale ddp-streamer pods with concurrent users.


Recommendations for every tier

  • File storage: Use object storage such as Amazon S3, Google Cloud Storage, or MinIO. GridFS is not recommended for production.

  • Database: Always run MongoDB as a replica set. Three members are strongly recommended for high availability.

  • Network: Expose ports 443 (HTTPS) and 80 (HTTP redirect to 443) externally. See System Requirements for details.