Architecture and Components
    • Dark
      Light
    • PDF

    Architecture and Components

    • Dark
      Light
    • PDF

    Article summary

    Rocket.Chat's architecture is a comprehensive, multi-component system designed for robustness, flexibility, and scalability. The separate components(modules) can function independently but are designed to work together. This modular design enhances the application's flexibility and scalability. For instance, organizations can integrate specific modules like video conferencing or file-sharing functionalities based on their needs, ensuring a customized and efficient communication platform.

    Based on a client-server model, the server component is written in JavaScript using Node.js and uses MongoDB for data storage. This architecture ensures high performance and real-time communication, making it suitable for various use cases, whether deployed on-premises or in the cloud. For example, businesses can deploy Rocket.Chat to facilitate seamless real-time collaboration across different departments, and customer support teams can leverage Rocket.Chat to provide instant assistance to clients, ensuring prompt resolution of queries.

    Rocket.Chat premium plan architecture

    Rocket.Chat's premium plans offer an advanced, scalable solution that extends the capabilities of the community workspace. It is specifically designed to cater to the needs of larger organizations and complex use cases, focusing on scalability, reliability, and ease of maintenance.

    Refer to the official guide for a comprehensive overview of these premium plans.

    Premium plan architecture

    Server (Rocket.Chat Monolith/Microservices)

    A Rocket.Chat workspace can be deployed as a Monolith, with multiple nodes working together, or a Microservices architecture. Using the Microservices approach, each system component operates independently and offers several advantages, such as enhanced scalability, load balancing, and high availability.

    Additionally, the microservices architecture allows individual components to be updated or replaced without impacting the entire system. This ensures flexibility and reliability for Rocket.Chat deployments, making it an ideal solution for businesses, educational institutions, and customer support teams that require robust, scalable, and easily maintainable communication platforms.

    Apps, Integrations, and Bridges

    Rocket.Chat is designed to be extensible and interoperable. Apps are developed using the Apps-Engine, which interfaces with the Rocket.Chat server. Examples include the WhatsApp app and Google Calendar app. Integrations allow for the incorporation of other external systems and services using APIs and webhooks.

    Bridge services provide a way of seamlessly transmitting data and conversation with different conversational platforms or protocols. Rocket.Chat currently supports bridging with the Matrix protocol.

    Storage

    Files such as assets, user files, images, and other media files are stored locally on the server's system or over network services like Amazon S3 and WebDAV. This layered approach to data storage ensures efficient data management.

    See the standard architecture section for details about the other components.

    Rocket.Chat community plan architecture

    Community plan architecture 

    Server

    A Rocket.Chat workspace can be deployed as a monolith, where a central processing unit manages logic and computation, user accounts, message storage, and communication with other components. This unified structure ensures the system's smooth operation by handling all essential functions in a single entity.

    This deployment type ensures consistent performance and reliability, making it an ideal choice for organizations that prefer a straightforward and cohesive communication platform.

    Refer to the standard architecture section for information on the remaining components.

    Standard architecture (Premium and community plans)

    Clients

    Rocket.Chat clients provide users with an interface on the web, desktop, or mobile application, connecting with the server mainly through HTTP requests and Websockets. Since all functionalities are exposed via REST APIs and WebSockets, integrating Rocket.Chat into your own user experience (UX) is straightforward.

    This multi-platform design ensures that users can access the chat application from virtually any device, whether on a computer at work, a smartphone on the go, or a tablet at home. This flexibility makes Rocket.Chat an ideal solution for organizations that need consistent and accessible communication tools across different devices and environments.

    Push notifications

    Push notifications are integral to real-time communication platforms. Rocket.Chat's premium plans offer workspaces with unlimited secure push notifications, ensuring users receive timely alerts. These notifications are delivered to mobile devices via a cloud push notification gateway, facilitating real-time communication.

    For example, in team collaborations, members are immediately informed about critical updates or mentions, ensuring they stay engaged and informed.

    SMTP and email notifications can also be configured, providing users with flexible notification options. This means that users can receive notifications through traditional email channels, ensuring they never miss critical updates even if they are not connected to the app.

    WebSocket

    Rocket.Chat uses the WebSocket protocol to enable real-time communication between the client and server. The WebSocket protocol is a high-performance, bi-directional communication protocol that enables instant data transfer, essential for a real-time chat application.

    Reverse proxy

    The use of a server proxy in Rocket.Chat adds an extra layer of security and efficiency to workspaces on any of Rocket.Chat's premium plan. Acting as an intermediary for client requests seeking resources from other servers, the server proxy enhances functionality by providing load balancing, caching, and security checks.

    For instance, in a large enterprise with heavy communication traffic, the server proxy can distribute the load evenly across multiple servers, ensuring smooth and efficient operation. It can also cache frequently accessed data, speeding up response times and improving user experience.

    Additionally, the server proxy helps protect the system from potential attacks by filtering out malicious requests. This added security layer is particularly valuable for organizations handling sensitive information, such as healthcare providers, ensuring that their communication platform remains secure and reliable.

    Change streams

    Rocket.Chat features a reactivity layer, which ensures real-time data updates in the system. This is crucial for a real-time chat application like Rocket.Chat, ensuring that users see the most up-to-date information in their chat interfaces.

    Permission management

    Rocket.Chat has components for managing user permissions. This is crucial for access control within the chat application, ensuring users can only access the features and data they are authorized to use.

    Apps-Engine

    The Rocket.Chat Apps-Engine is a framework that enables users to create and host custom apps for Rocket.Chat, providing a tailored communication experience.

    This flexibility allows organizations to customize and enhance Rocket.Chat’s capabilities to meet their specific needs.

    Database

    Rocket.Chat uses MongoDB as a database to store all chat messages, user information, and other system configurations and related data.

    Matrix protocol integration

    Rocket.Chat supports federation using the Matrix protocol, an open standard for interoperable, decentralized, real-time communication. This integration allows Rocket.Chat to transmit data and conversations across different platforms on the Matrix protocol, enabling seamless communication between diverse systems.

    This interoperability ensures that Rocket.Chat users can maintain real-time communication across various platforms, enhancing collaboration and connectivity in a decentralized manner.

    Authentication and authorization

    User authentication, authorization, and access control can be managed using open standard protocols like OAuth, SAML, and LDAP. This integration with multiple authentication protocols ensures secure user login processes.

    This architecture demonstrates Rocket.Chat as a seamless and secure chat solution, designed for versatility and robustness. It accommodates various platforms, integrates with multiple protocols and systems, and helps you manage data effectively.


    Was this article helpful?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.
    ESC

    Eddy AI, facilitating knowledge discovery through conversational intelligence