Hi,

In the Managed Cursor implementation, I saw that the position state is
persisted in the ledger whenever a user calls acknowledge, be it individual
or cumulative.

For performance reasons there is a rate limiter, defaulting to 1 persist
action per second.

The bug:
17:00:00.003 - user ack a single message --> state it written to ledger
17:00:00.004 - 17:00:00.400 - use acks a single message 100 times.
nothing happens after that on that subscription.

18:00 - machine crashed.
You "lost" the state hence 100 messages have to be redelivered.

I was wondering if it makes sense to add a timeout - say 10sec. If nothing
happens to the subscription, flush the state after 10sec if it's dirty.

WDYT?

Reply via email to