* Queue: Message is published once and consumed once.
* Pub Sub: Message published once, consumed many times.
* Kafka Asked: How can we do both ? Consumer Group
* Kafka designed their system to server both purposes from the start.
* RabbitMQ started as a Message Queue System, but later added support for pub/sub. As a result, the system became awkward.