The difference between Kafka, ZeroMQ, and Memphis lies in message persistence and software design.
Kafka has good persistence for messages.
When producers produce messages to topics in Kafka, the messages are left there till some preset time.
Kafka consumers just poll messages at intervals.
Kafka stores messages in disk and doesn’t have dead letter systems.
ZeroMQ has zero persistence.
The zero in its name is to indicate that it can work as a message queue without a controlling message broker.
ZeroMQ uses low level messaging protocols.
It goes as low as working with various transport layer protocols.
ZeroMQ does everything in memory and instantly in the network.
For this reason it has no persistence.
Memphis has high persistence levels.
It stores messages in disk and maintains dead letter stations.
Stations are like queues in Memphis.
Memphis is a modern message broker that coordinates messages across consumers, producers, and stations.