核心问题
你需要的是消息系统,还是一个简单队列?
工程困境
“别人都用 Kafka”不是架构理由。
如果每天几百单,只需要支付后异步发邮件,Kafka 可能比问题本身更重。
思想模型
工具对应不同问题:
Redis List -> 轻量队列
Postgres outbox -> 事务一致 + 可追踪
Kafka -> 高吞吐 + 多消费者 + 重放
好判断
如果你需要:
- 高吞吐事件流
- 多消费者独立消费
- 长期保留和重放
- 数据管道
Kafka 合理。
如果只是异步任务,先考虑 outbox 或轻量队列。
Atlas Action
把你的“我们需要 Kafka”改写成:“我们需要 X 能力,因为 Y 风险,成功标准是 Z”。如果写不出来,先别上。
小结
不要用成熟公司的答案,替代你自己的问题分析。