Kafka, RabbitMQ and Pulsar measured side by side on ordering, replay and consumer scaling by driving the three client libraries directly, plus an operational-footprint measurement of each broker's own distribution. Nine tests, three brokers started without Docker, and every number in the documentation regenerated by scripts/run-all.sh.
15 lines
719 B
Plaintext
15 lines
719 B
Plaintext
== Pulsar: acknowledged, but still there ==
|
|
|
|
subscription replay-sub, first read : 12 messages
|
|
subscription replay-sub, after seek(earliest): 12 messages
|
|
subscription replay-sub-2, brand new : 12 messages
|
|
|
|
Acknowledgement moves a cursor; the message itself lives in the managed
|
|
ledger. seek(MessageId) and seek(timestamp) rewind a live subscription,
|
|
which Kafka can also do by resetting offsets. What differs is the default:
|
|
Pulsar deletes a message once every subscription has acknowledged it,
|
|
unless a retention policy on the namespace says otherwise, whereas Kafka
|
|
keeps it for the retention period regardless of who read it. A Pulsar
|
|
topic with no retention policy and no subscriptions keeps nothing.
|
|
|