Why Kafka has kafka-console-consumer.sh or term consumer group or consumer-app. Instead it makes more sense as kafka-console-read.sh or reader group or read-app.
While data is going to stay until its TTL, it doesn’t disappear as soon as some one consumes it like rabbitMQ or MessagingQueue architecture.
I’m not sure about the history of it and why produce / consume were chosen over read / write, publish / subscribe, or something else. The Apache Kafka docs use these terms pretty interchangeably when describing producers and consumers:
Producers are those client applications that publish (write) events to Kafka, and consumers are those that subscribe to (read and process) these events.
My two cents:
- Naming is hard
- I don’t see “consume” being used in the messaging / streaming ecosystem to describe only destructive reads (like, say, “dequeue”). Even RabbitMQ’s Streams docs get into “non-destructive consumer semantics.” ActiveMQ also has a notion of non-destructive queues and consumers that read from them. Because of this I don’t think that any of read / subscribe / consume is necessarily any more sensible than the others.