Perhaps it's not so much about pub/sub, but about store-and-forward.
When the "forward" part of "store-and-forward" is most important then Kafka is a fine solution.
However, when the "store" part - for example you want to be able to stream historical data again, or interact with the data in different ways - is most important I have recommended HBase (+ Phoenix) as a better solution in the past.
When the "forward" part of "store-and-forward" is most important then Kafka is a fine solution.
However, when the "store" part - for example you want to be able to stream historical data again, or interact with the data in different ways - is most important I have recommended HBase (+ Phoenix) as a better solution in the past.