Good article, but I have a quibble about Kafka and Replayability. Last I used it, Kafka discarded messages from its queues based on an elapsed time parameter. This enables each subscriber to traverse a queue at its own pace and with its own position pointer.

The trade off is that the longer the time parameter is, the larger the queues grow. Setting the time parameter, of necessity, balances storage and reliability.

An example might be 5 subscribers connect to the same queue. If subscriber B goes offline for longer than the time parameter, some messages may be automatically purged and lost, so subscriber B cannot safely be restarted, i.e., its missed messages cannot be replayed.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store