From my understanding, the protocols for each of these systems are inherently coupled to the internal service characteristics. RabbitMQ and Kafka take very different approaches to messaging. Neither is generally better, and they each make different tradeoffs.
These tradeoffs have real impact on client logic. And in this case, where it's not as simple as a line protocol like http, it may be hard to disentangle the "objects" and the protocols.
With that in mind, I'd choose the one which is most similar to your internal messaging service so there's less impedance mismatch.
ethegwo
I worked for TikTok before, and we forked the Kafka client for internal use. The approach of the Kafka client and its protocol is the craziest thing I've ever encountered. I would never want to build it from scratch, even just maintaining the forked version was horrible.
Kinrany
Why do your users want your queue instead of Rabbit or Kafka?
leros
RabbitMQ is simpler to implement but it has fewer capabilities than Kafka.
sc68cal
I honestly think both protocols have sufficient complexity that it's not really the right question.
I also would say that both protocols target different use cases. It may seem on the surface that they are similar but I don't think that gives either system a fair appraisal.
What is your target audience? What do they use currently?
These tradeoffs have real impact on client logic. And in this case, where it's not as simple as a line protocol like http, it may be hard to disentangle the "objects" and the protocols.
With that in mind, I'd choose the one which is most similar to your internal messaging service so there's less impedance mismatch.