使用 Kafka 作为命令总线是个好主意吗?

Is it a good idea to use Kafka as Command Bus?

我正在开发 CQRS 应用程序,必须选择命令总线的底层实现。我们已经决定使用 Kafka 作为事件总线。但是命令总线呢?从我的角度来看,Kafka 对于命令总线要求来说太复杂了,例如,我们不需要持久存储命令,如果没有任何服务实时处理它,我们应该拒绝它们。有什么比用作分布式命令总线更好的呢?

Kafka 不关心你在上面存储什么;它只是字节。 Commands/Actions 是当您 处理事件 时发生的事情。

Creating an ESB with Kafka is considered an anti-pattern

we don't need to store commands persistently

然后降低对主题的保留,以免将它们存储太久。

we should reject them if no one of services handled it in real time

为什么?然后你只是丢弃事件,听起来你最好只使用点对点通信和健康检查机制(参见 gRPC)