A super quick comparison between Kafka and Message Queues
Hendrik Swanepoel

Interesting introduction to Kafka, but please don’t confuse a message delivery mechanism with programming concepts.

This means that the messages in the queue are actually commands, which is suited towards imperative programming, and not an event, which is suited towards reactive programming.

An event is something that happened in a system, while a command is telling that system to do something. The transport mechanism (queue, Kafka, or even API call) has nothing to do with if a message is a command or an event.

it doesn’t allow you to kick off multiple independent actions based on the same event. All the processors of of the queue messages will execute the same type of logic in the same domain

This is not a limitation of queuing (for example see a fanout exchange in AMQP) but instead one of system design and approach.

Kafka definitely takes a different approach to messaging and that approach is better suited for certain system designs but a reactive system could just as easily be based on queues. The choice of a messaging system (or any technology) should be based on the design and needs of your system.