== 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.