Architecture and Components

Prev Next

Rocket.Chat uses a modular, multi-component architecture designed for flexibility, scalability, and reliability. Components operate independently while integrating seamlessly, allowing organizations to enable capabilities such as video conferencing and file sharing based on their requirements.

Rocket.Chat follows a client-server architecture. The server is written in JavaScript using Node.js and uses MongoDB for data storage, supporting real-time communication across on-premises and cloud deployments. Organizations can use Rocket.Chat to support collaboration across departments and enable customer support workflows.

This guide outlines the architectural components available in Premium plans, Community workspaces, and those included across all plans.


Rocket.Chat Premium plan architecture

Rocket.Chat Premium plans provide advanced, scalable capabilities that extend the functionality of Community workspaces. They are designed for organizations with complex requirements, supporting scalability, reliability, and maintainability.

For a detailed overview of Premium plans, see Our Plans.

Server (Rocket.Chat Monolith/Microservices)

A Rocket.Chat workspace can be deployed as a monolith with multiple nodes or as a microservices architecture.

  • In a microservices architecture, components operate independently, supporting scalability, load balancing, and high availability.

  • Individual components can be updated or replaced without affecting the entire system.

Apps, integrations, and bridges

Rocket.Chat is designed to be extensible and interoperable.

  • Apps are developed using Apps-Engine, which interfaces with the Rocket.Chat server. Examples include the WhatsApp app and Google Calendar app.

  • External apps can also be installed from the Rocket.Chat Marketplace.

  • Integrations enable connectivity with external systems and services through APIs and webhooks.

  • Federation, introduced in version 7.11, is Rocket.Chat’s native implementation of the Matrix protocol. It runs within Rocket.Chat without requiring external services or additional databases, enabling secure and interoperable communication across federated networks.

Storage

  • Files such as assets, user files, images, and other media can be stored locally on the server or through network services such as Amazon S3 and Google Cloud Storage.

  • Allowed and blocked file types can be configured at the workspace level.

See Standard architecture for details about other common components.


Rocket.Chat Community workspace architecture

Community plan architecture

Server

  • A Rocket.Chat Community workspace can be deployed as a monolith, where a central processing unit manages application logic, user accounts, message storage, and communication with other components.

  • This unified structure supports system operation by handling core functions within a single service.

See Standard architecture for information about the remaining components.


Standard architecture (Premium and Community)

Reverse proxy

A reverse proxy adds a security and traffic management layer to Rocket.Chat deployments.

  • It acts as an intermediary for client requests, supporting load balancing, caching, and request filtering.

  • It helps distribute traffic across servers and can cache frequently accessed data to improve response times.

  • It filters malicious requests to help protect the system.

Role-based access control

Rocket.Chat manages user permissions through role-based access control (RBAC), ensuring users can access only the features and data they are authorized to use.

Authentication and authorization

Authentication, authorization, and access control are supported through open standard protocols such as OAuth, SAML, and LDAP, enabling centralized user management and secure login workflows.

Database

Rocket.Chat uses MongoDB to store chat messages, user information, system configurations, and related data.

Clients

Rocket.Chat clients provide user interfaces on web, desktop, and mobile application.

  • Core functionality is exposed through REST APIs and WebSockets, supporting integration with external user experiences.

  • Users can access the platform across devices and environments.

Push notifications

Push notifications are integral to real-time communication platforms. Rocket.Chat supports push notifications delivered to mobile devices through a cloud push notification gateway. SMTP and email notifications can also be configured to support message delivery through traditional channels.

WebSocket

Rocket.Chat uses the WebSocket protocol to support real-time communication between clients and the server, enabling bi-directional data transfer.

Change streams

Rocket.Chat includes a reactivity layer that supports real-time data updates across the system, allowing clients to receive the latest state changes.

Apps-Engine

The Rocket.Chat Apps-Engine framework enables the creation and hosting of custom applications that extend platform functionality.

Matrix protocol

Rocket.Chat includes Federation, a built-in implementation of the Matrix protocol that enables decentralized communication across Rocket.Chat servers and Matrix-compatible platforms without requiring external homeservers.