Versions Compared

Key

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

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramDisplayNameIndividual commit
lboxtrue
revision9
diagramNameIndividual ack
simpleViewerfalse
width
linksauto
tbstyletop
diagramWidth573
revision7

The logic behind individual commit is very straightforward. For sequential commit each topic partition will only point to one offset number, while under individual commit it is possible to have "gaps" in between. The "stable offset" is a borrowed concept from transaction semantic which is just for illustration purpose, and the idea is that stable offset marks the position where all the messages before it are already committed. "Max commit offset" is the furtherest position this topic has advanced. It is allowed to have some commit gaps in between the stable offset and max offsetThe `IC` blocks refer to the individual commits that are marking records that are processed.

In the individual commit mode, the offset metadata shall grow much quicker and harder to predict. To avoid messing up the stable offset, we propose to add another internal topic called `__individual_commit_offsets` which stores the gaps specifically individual commits specifically. This extra overhead is more controllable by doing this isolation. And each time 

Public Interfaces

The 

Compatibility, Deprecation, and Migration Plan

...