核心问题
我们到底要解决什么根本问题?
工程困境
团队问:
我们要不要上 Kafka?
这个问题太早了。真正的问题是:
我们需要解耦、缓冲、削峰、持久化、重放、广播,还是一致性?
思想模型
第一性原理要求把工具名拿掉,回到问题的基本条件。
好判断
选型前问:
是否需要异步?
是否需要重放?
是否需要多消费者?
是否能接受最终一致?
消息丢失代价是什么?
运维复杂度是否值得?
Atlas 案例
支付成功后要发邮件、更新推荐、通知管理员。早期可能用 Postgres outbox + worker 就够,不必立刻 Kafka。
小结
复杂工具必须由真实复杂性支付。