Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
Description
We should enable consumers to save their position themselves. This would be useful for consumers that need to store consumed data so they can store the data and the position together, this gives a poor man's "transactionality" since any data loss on the consumer will also rewind the position to the previous position so the two are always in sync.
Two ways to do this:
1. Add an OffsetStorage interface and have the zk storage implement this. The user can override this by providing an OffsetStorage implementation of their own to change how values are stored.
2. Make commit() return the position offset vector and add a setPosition(List<Long>) method to initialize the position.
Let's figure out any potential problems with this, and work out the best approach.