Server Architecture

Prev Next

Rocket.Chat’s server architecture defines how the platform is structured and how its components interact to deliver a scalable and reliable messaging system. This overview introduces the core elements of the architecture and explains how they work together.

For a broader perspective, see architecture and components guide.

Core components

  • Core server: Contains packages responsible for authentication, messaging, and other essential server functionality.

  • Database: Rocket.Chat uses MongoDB to store application data, including messages, user information, and system configurations.

  • File storage: Stores assets such as uploaded files, images, and other media.

Services

Rocket.Chat’s architecture includes both internal and external services:

  • Internal services run within the Meteor instance and are tightly integrated with the main server process.

  • External services operate independently in separate processes, enabling better scalability and fault isolation.

External services

Rocket.Chat includes the following external services:

  • Authorization: Manages user permissions and access control. The service is stateless and supports horizontal scaling.

  • Account: Handles account lifecycle operations such as creation, updates, and deletion, and supports authentication workflows (for example, login and logout). This service is stateless and horizontally scalable.

    Presence: Tracks and updates users’ online status. Designed to be stateless and horizontally scalable.

  • DDPStreamer: Manages DDP (Distributed Data Protocol) connections, including subscriptions, client-server communication, and data delivery. Supports horizontal scaling.

  • Apps-Engine: Manages Rocket.Chat applications, including installation, execution, updates, and removal. Although designed for horizontal scaling, this service is currently under active development.

Key terms:

  • Horizontally scalable: Capacity can be increased by adding more servers or instances, distributing workload and improving resilience without introducing a single point of failure.

  • Stateless: The service does not retain session data between requests. Each request is handled independently, simplifying scaling and improving reliability.

Internal services

Rocket.Chat includes the following internal services:

  • Banner: Manages banner lifecycle operations, including creation, updates, and deletion.

  • LDAP: Handles LDAP (Lightweight Directory Access Protocol) integration, establishing connections to LDAP servers and synchronizing user data.

  • NPS: Works with the Banner service to manage Net Promoter Score (NPS) surveys, generate targeted banners, and process survey responses.

  • Room: Manages chat room  lifecycle operations, including creation, updates, and deletion.

  • Omnichannel: Supports core omnichannel operations and workflows.

  • Omnichannel VoIP: Enables VoIP (Voice over Internet Protocol) calling within the omnichannel system.

  • Team: Manages team lifecycle operations, including creation, updates, and deletion.

  • UiKitCoreApp: Processes UIKit actions and events, leveraging the Apps-Engine for app-related workflows and Meteor Legacy for core functionality.

  • Push: Manages push notifications and delivers them to mobile applications.

  • Upload: Handles file uploads, including storage and file management.

  • Messaging: Manages message processing within Rocket.Chat.

  • Settings: Manages system settings, including creation, updates, and deletion.