核心问题

我们到底要解决什么根本问题?

工程困境

团队问:

我们要不要上 Kafka?

这个问题太早了。真正的问题是:

我们需要解耦、缓冲、削峰、持久化、重放、广播,还是一致性?

思想模型

第一性原理要求把工具名拿掉,回到问题的基本条件。

好判断

选型前问:

是否需要异步?
是否需要重放?
是否需要多消费者?
是否能接受最终一致?
消息丢失代价是什么?
运维复杂度是否值得?

Atlas 案例

支付成功后要发邮件、更新推荐、通知管理员。早期可能用 Postgres outbox + worker 就够,不必立刻 Kafka。

小结

复杂工具必须由真实复杂性支付。