RobustMQ:我们要做定义者,而不是追随者
过去几个月,很多人问我:现在已经有Kafka、EMQX、RabbitMQ这些成熟的产品,为什么还要做RobustMQ?你们凭什么认为能做得更好?
我的答案很直接:RobustMQ从来不是要成为"更好的Kafka"或"Rust版EMQX",我们要做的,是定义下一代消息平台应该是什么样子。
追随者 vs 定义者
过去十年,消息队列领域出现了很多优秀的项目。Redpanda用C++重写Kafka,性能提升数倍;Pulsar改进了Kafka的架构缺陷;各种云厂商推出托管服务。这些都是有价值的工作,但本质上,它们都是在Kafka定义的框架内优化和改进。协议还是Kafka协议,模型还是那套发布订阅,概念还是topic、partition、consumer group。
它们是追随者。追随Kafka定义的标准,在这个框架内做到最好。
追随者也可以很成功,但追随者永远活在定义者的阴影下。无论做得多好,都是在别人定义的游戏规则里玩。
RobustMQ不想做追随者,我们要做定义者。
什么是定义者?Kafka在2011年定义了用日志模型处理流式数据,定义了分区和副本的概念,之后十几年大家都在这个框架内工作。Kubernetes定义了容器编排的标准,定义了Pod、Service等抽象,整个云原生生态都建立在这些概念上。Rust定义了所有权系统,改变了系统编程语言的游戏规则。
定义者创造新的概念、新的标准、新的范式。之后的人,都在这个框架内工作。这才是真正的影响力。
我们在定义什么
我们在定义的第一个概念是:消息基础设施应该是统一的。
当前企业需要部署EMQX做IoT连接,部署Kafka做流处理,部署RabbitMQ做微服务通信。三套系统、三种协议、三份运维成本、三个数据孤岛。为什么?因为每个产品都是为单一场景设计的,各自优化,但无法统一。
我们说:这不应该是终局。未来的消息平台应该是统一的。一套系统,通过强大的内核,支持所有的消息协议和场景。
我们在定义的第二个概念是:消息平台的内核应该是协议无关的。
传统做法是为MQTT设计一套系统,为Kafka设计另一套,协议和实现深度绑定。我们说:协议只是表现形式,本质都是消息的路由、存储、分发。应该有一个协议无关的强大内核,在内核之上适配不同协议。
我们在定义的第三个概念是:基础软件应该用最合适的技术重新构建。
Kafka用Java是因为2011年时Java是主流。但现在是2025年,我们有Rust这样更好的选择。零GC的性能、内存安全的保障、现代化的并发模型。我们要证明:用最合适的技术从头构建,可以做出本质上更优秀的产品。
兼容是起点,定义是终点
有人看到我们在实现MQTT、Kafka协议,说:"你们不也是在追随吗?"
适配现有协议只是第一步。我们实现MQTT是因为IoT设备都在用,兼容Kafka是因为大量应用已经在用Kafka API。这是务实的选择,降低用户的迁移成本。
但在兼容的同时,我们在底层构建完全不同的东西。Kafka的日志模型、EMQX的Erlang架构,我们都不用。我们有自己的存算分离架构,自己的Rust内核,自己对多协议统一的理解。
更重要的是,我们不会止步于适配现有协议。当RobustMQ的内核足够成熟,当我们积累了足够的影响力,我们会开始定义新的东西。也许是更适合云原生的新协议,也许是更高效的多协议路由机制,也许是专门为AI场景设计的传输协议。
那时候,我们才真正从追随者变成定义者。
从内核开始的定义
定义必须从根本处开始。
如果只是fork Kafka的代码用Rust重写,那只是换个语言,本质还是Kafka的那套东西。如果只是在EMQX基础上加功能,那还是EMQX的架构。这不是定义,这是跟随。
真正的定义,要从最底层、最核心的地方开始。重新思考消息队列的本质,重新设计内核应该提供什么能力,重新定义协议如何抽象。
这就是为什么我们花大量时间在内核上,为什么我们坚持手撸每一行关键代码。我们坚信,只有从最底层、最内核的地方开始构建差异性,才可能真正超越现有产品。
消息路由引擎、存储抽象层、调度机制,这些核心组件必须做到极致。内核不够强,上面再怎么堆功能也没用。内核没有创新,只是换个语言重写,和现有产品的差距是有限的。
MQTT、Kafka这些协议,只是验证内核设计的手段。当内核真正成熟时,它应该能支持任何协议、任何场景,甚至是我们自己定义的新协议。
这就是从内核开始的定义。
需要多长时间
定义一个新标准需要时间。Kafka用了五六年成为流处理标准,Kubernetes用了三四年统治容器编排。
我们给自己的时间是十年。
前几年,专注打磨技术。把内核做到极致,把MQTT做到100%,把Kafka做到100%。让技术足够硬,让性能足够好,让稳定性经得起验证。
中间几年,扩大影响力。进入Apache,成为顶级项目。在技术社区发声,吸引更多贡献者,建立活跃社区。
后期,开始真正的定义。提出新概念,设计新标准,推动新范式。如果被社区接受、被生态采纳,成为事实标准,那我们就成功了。
这个过程不会一帆风顺,会有质疑、挑战、失败。但我们会坚持,因为相信方向是对的。
我们的选择
做追随者,相对安全。学习最佳实践,在成熟框架内优化,风险可控。
做定义者,充满风险。可能方向错了,可能能力不够,可能时机不对。但如果成功了,影响力是追随者无法比拟的。
我们选择做定义者。
不是因为狂妄,而是因为相信:消息基础设施需要新的范式,现有框架已经不够了。有人要站出来定义新标准,为什么不能是我们?
我们有清晰的技术理念——统一内核、多协议支持、云原生架构。我们有扎实的技术能力——每一行核心代码都是手撸的,每一个设计决策都是深思熟虑的。我们有长期的耐心——十年时间,够我们把技术打磨到极致。
也许我们会成功,成为下一个定义标准的项目。也许会失败,成为技术演进中的一次尝试。但无论如何,我们在认真做一件有意义的事情。
我们不是要成为"更好的Kafka",我们要定义下一代消息平台应该是什么样子。
这是RobustMQ的选择,也是我们的信念。
抬头看天,低头走路。未来属于那些敢于定义的人。
RobustMQ正在从内核开始,定义下一代统一消息平台。欢迎关注我们的GitHub,见证这个探索的过程。
