Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

* Some messages with earlier timestamp might also be consumed."

 

Proposed Changes

 

This process will be separated in 3 steps:

 
  • Generate Reset Plan file with specific offsets by partition to reset, for a specific Consumer Group

  • Verify that the Reset Plan file is consistent and the current state of Consumer Group offsets

  • Execute the Reset Plan file, resetting offsets to the values specified in it.

  

Also, we will consider an option to generate and execute in one step, for users that don't need to validate the Reset Plan file.

  


This options will enable clients to move back and forward, depending on where they are currently in the topic.

 

For instance: if a topic 'T1' with 1 partition and 100 records (offsets 0-99) has 2 Consumer Groups: one Consumer Group 'C1' inactive, with current offset 20, and other Consumer Group 'C2' that has been actively consuming records from T1. If we reset to a point in time where offset is 80, clients will be moving forward. But if C2 is reset to the same point in time, it will be moving backward.

 

Public Interfaces

Consumer Group Reset Offset Tool

...

Rejected Alternatives

None

1. Reset to specific offset: Move Consumer Group to specific offset by partition.

2. Reset to datetime: Find last offset by datetime, and reset offset by partition.

3. Reset by period: Find last offset from datetime calculated from an input period and current timestamp (e.g. 5 days ago.).

This process will be separated in 3 steps:

 

Generate JSON file with specific offsets by partition to reset

 

 

Verify JSON file consistency and current state of consumer group offsets

 

 

Execute the JSON file, resetting offsets to values specified.

 

Also, it will consider an option to generate and execute in one step.

This options will enable clients to move back and forward, depending on where they are currently in the topic.

For instance: if a topic T1 with 1 partition and 100 records (offsets 0-99), has one Consumer Group C1 inactive, with current offset 20. If we reset to a point in time where offset is 80, client will be moving forward. Another Consumer Group C2 that has been actively consuming records from T1, if it’s reset to the same point in time, it will be moving backward.