RobustMQ: Single Binary Architecture Design
When first encountering the RobustMQ architecture, the diagram shows a system with storage-compute separation, compute/storage/scheduling three-layer separation, and multiple components: Meta Service, Broker Server, Storage Adapter, plugin-based storage, etc. This might give the impression of complex deployment.

However, from the very beginning, one of RobustMQ's core design goals has been to simplify usage and operations with one-click deployment.
Therefore, RobustMQ uses a single-binary design with no external dependencies. Simply download the binary package and start the cluster. One command starts the service:
$ wget https://github.com/robustmq/robustmq/releases/download/v0.2.4/robustmq-v0.2.4-linux-amd64.tar.gz
$ tar -xzf robustmq-v0.2.4-linux-amd64.tar.gz
$ cd robustmq-v0.1.35-linux-amd64
$ ./bin/robust-server startWorth noting: the package size is only about 20 MB. With further optimization, it can be compressed to under 10 MB, enabling deployment in any scenario, including edge computing.
So how can such a feature-rich, seemingly complex system start with a single command and no external dependencies?
How robust-server start Works
The following diagram shows the startup flow:

As shown above, each Broker supports two types of ports: gRPC and other protocols (TCP/TLS/WS/WSS/QUIC, etc.). gRPC serves as the cluster-internal protocol for Broker-to-Broker communication.
When you run robust-server start, the system starts as follows:
- First, gRPC listening starts to support node discovery and cluster formation. For details on Roles configuration, see RobustMQ Roles.
- The Raft state machine starts. The state machine discovers other nodes via gRPC and triggers the election to elect the Meta Service Leader. At this point, Meta Service startup is complete.
- If the configured storage engine is memory mode, proceed directly to Broker startup.
- If the configured storage engine is Journal Engine, trigger the Journal Engine startup flow.
- Journal Engine Node registers with Meta Service, which forms the cluster. When registration succeeds, the storage layer startup is complete.
- Start the Broker. The Broker registers with Meta Service and likewise forms the cluster through Meta Service.
- After Broker starts, the kernel runs controllers, heartbeat reporting, and other async threads. When these threads are up, Broker startup is complete.
Thus, although RobustMQ's architecture is complex, that complexity is encapsulated in the code. For users, usage is very simple.
Summary
RobustMQ is extremely simple to use — no complex configuration or installation. Download the package and start with one command.
