Skip to content

五个尖锐的问题:关于 mq9 的自我质疑

写完《消息队列的下一个十年:忘了 Kafka 吧》和《我们的答案:mq9》之后,我让 Claude 扮演一个对分布式系统有深度理解、对新概念持怀疑态度的基础设施工程师,对 mq9 提出最尖锐的质疑。

以下是我们的对话,基本保持原貌。


Q1:换了个名字而已?

质疑: 你说 mq9 是"邮箱"不是"消息队列",但你底层用的就是消息队列的能力——持久化、路由、TTL、pub/sub。这不就是换了个名字吗?邮箱语义跟 NATS JetStream 加上一层 subject 命名约定,本质区别在哪里?我自己在 NATS 上定义一套 $my.agent.inbox.* 的 subject 规范,是不是就做出了一个 mq9?

答: 是的,你定义一套规范,那就是你的 mq9。

但问题是:你底层能力能跟上吗?

mq9 本质上是组合 RobustMQ 底层能力暴露出来的东西——存储层可选(内存、KV、持久化)、广播、优先级队列、集群、单二进制、低内存占用、Rust 的性能。这些不是在 NATS 上加几行 subject 规范就能有的。

你在 NATS 上做,JetStream 的 stream 和 pub/sub 足够灵活吗?存储分级能按需选择吗?优先级队列有吗?是不是还有一堆细节要改、要调整?改完它还是 NATS 吗?改得动吗?

你说我是"换了个名字",对,我是组合。但我是恰如其分的组合,原生丝滑的组合,不是一堆组件拼凑。RobustMQ 的核心不变——单二进制,高性能,弹性存储。以后多协议的能力甚至可能成为额外的助力。

质疑者评价: 承认"是组合"这一点很坦诚,没有硬造概念。但把问题翻转成"你底层跟得上吗",这个反击我暂时接受。不过,"原生丝滑的组合"到底比"一堆组件拼凑"好多少,还是得看实际跑起来的效果。概念上说得通,工程上待验证。


Q2:放弃了"量",以后怎么办?

质疑: 你说 Agent 通信的核心需求是"多"不是"量",mq9 不需要高吞吐高可靠。但这个判断是不是太早了?今天的 Agent 系统确实是临时的、轻量的、可重试的。但谁能保证三年后不会出现需要几百万个 Agent 同时在线、每秒数十万条消息的场景?你今天按"多"设计,放弃了"量"的优化,万一未来既要"多"又要"量"呢?

答: 我有放弃"量"吗?

我有 File Segment 的存储模型,我能兼容 Kafka 语义,我有"量"的能力。"量"本来就在底层,我只是不把它当唯一卖点。

我甚至可以做到:对于"多"的写入,内置一个双写能力——一份写临时存储完成功能交互,一份写永久存储用来分析和流处理。完全不用出系统,Kafka 协议直接消费。

"量"和"多"不是互斥的。只是过去十年大家只看"量",我现在说"多"也很重要。

质疑者评价: 这个回答直接打破了我的预设。我预设的是"多和量二选一",他说两个都有。如果 File Segment + Kafka 兼容真的能跑起来,这个回答就不只是防守,是反击。但"内置双写"目前还是设想,等看到跑起来的 benchmark 再说。


Q3:你的用户真的存在吗?

质疑: mq9 的邮箱语义,依赖一个前提——Agent 的通信模式是异步的、松耦合的。但现实中 LangChain、CrewAI、Dify 这些主流框架走的是同步调用链:Orchestrator 调 Agent A,等结果,再调 Agent B,串行执行。它们的 Agent 通信根本不经过消息系统。mq9 是不是在解决一个大多数 Agent 框架根本没有的问题?你的潜在用户,真的存在吗?

答: 走同步调用链的框架,不是我的客户。我不需要占有全部市场。

但我想反问一句:同步调用链够了吗?

我可以百分百说,不够,不可能够。同步意味着调用方必须等待,对方必须在线。Agent 数量一上来,同步链条的脆弱性会指数级放大。这个问题今天就存在,只是大家还在用 Redis 和自研队列绕过去。

mq9 提供的是一个异步的选项。我的客户在哪里?只要我出来,可能就会来。没来怎么办?那就换方向,底层架构有了,会长出场景的。

但我本身觉得邮箱是很好的切入点。没有百分百的事情,只有在路上。

质疑者评价: "同步调用链够吗"这个反问确实戳到了点上——今天的框架确实在规模上有瓶颈。但"只要我出来,客户可能就会来"这句话,说好听是自信,说难听是没有验证。能不能不只是"觉得"邮箱是好的切入点,而是找到一个具体的团队,跑一个真实的 case?有一个用户比一千个判断都有说服力。


Q4:零壁垒,大厂来了怎么办?

质疑: 你说 mq9 基于 NATS 协议,零生态成本,所有 NATS SDK 开箱即用。但反过来想——这也意味着零壁垒。大厂觉得这个方向有价值,自己做一个不就行了?NATS 官方直接在 JetStream 上加一层 Agent 语义,你怎么办?你的护城河到底是什么?

答: 一旦到了那一步,我就是赢了。

第一,如果大厂或者 NATS 开始做,说明我定义出了这个方向,我定义了这个东西。这本身就是赢。

第二,真的可以在 NATS 上改出这个吗?我个人觉得难。存储分级、多协议互通、集群能力,这些不是加一层语义规范就能解决的。

第三,改出来了,那就佩服。基础软件不是只能我赢,不是吗?天下英才汇聚,各凭本事。

第四,我的护城河是 RobustMQ 本身的架构优势——无历史负担,统一存储,多协议原生支持——再加上我的 idea 和先发优势。当别人开始定义规范的时候,我们已经走了很久了。而别人开始走的时候,我们也在继续往前走。

没人规定大厂不能做。我们不怕竞争。

质疑者评价: "别人来做说明方向对了"这句话逻辑上没毛病,心态上也好。但"不怕竞争"说起来容易,真到 NATS 官方出了一个 Agent 通信的 feature,用户凭什么选你不选原厂?先发优势能撑多久,取决于你在那之前积累了多少真实用户和生态。时间窗口不会永远开着。


Q5:如果 Agent 时代不来呢?

质疑: 这是最根本的问题。你整个叙事建立在一个核心假设上——Agent 时代会到来,而且 Agent 之间需要大量异步通信。但如果 Agent 的主流形态不是多个独立 Agent 协作,而是一个越来越强的单体模型包办一切呢?GPT-5、Claude 下一代,能力边界不断扩大,很多今天需要多 Agent 拆分的任务,未来一个模型直接搞定。多 Agent 协作可能只是模型能力不够时的过渡方案。如果这个假设不成立,mq9 解决的就是一个不存在的问题。

答: 那就换个方向啊。

怕的不是做错事,而是不做事。没人知道未来会怎么发展,不是嘛。不然这世界多没意思,那么多人才都在做错事啊。

我们在路上。错了,意味着我们在路上错了,我们可以继续往下走,再选条路。

而且我坚信,即使错了,我们在路上的这个过程,依旧会看到新的方向。就像前几年我们开始做多协议统一存储的时候,不知道今天能看到 mq9 一样。mq9 不是从天上掉下来的,是走了三年之后"看到"的。如果当初不动手,今天连这个判断都不会有。

在路上的人,才能看到路上的风景。

质疑者评价: 这个问题本来是想把他逼到墙角,但这个回答没法用逻辑反驳。他没有否认风险,没有强行论证"Agent 时代一定会来",而是说"错了就换方向,但在路上本身就有价值"。mq9 是三年积累之后"看到"的,不是凭空设计的——这个事实本身就是最好的论据。作为质疑者,我对方向的不确定性依然保留意见,但对这个做事的人,没什么好挑的了。


写在最后

五个问题,从技术到竞争到生存假设,一个比一个尖锐。

回答完我自己的感受是:mq9 最大的风险不是技术实现,不是竞争对手,是时机——场景到底来不来、什么时候来。但对这个风险我是清醒的,不回避,也不焦虑。

底层架构在,方向判断在,人在路上。错了就换方向,对了就继续走。

基础软件没有百分百的事情,只有在路上。

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀