Die Implementierung speichert Zustand & Offsets vor _jedem_ `poll()` sumup-adder--drop-duplicates sumup-adder--drop-duplicates---lvm-2-tage
authorKai Moritz <kai@juplo.de>
Fri, 2 Sep 2022 03:41:42 +0000 (05:41 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 16 Sep 2022 08:40:49 +0000 (10:40 +0200)
commit1c97cf9d1a93d5cfb6f1123cb45f644238798608
treeb9547ba44697a9cadb792264a6197d74511a2bce
parent9ac94aed684ce23a186792a3275a574d5adfa836
Die Implementierung speichert Zustand & Offsets vor _jedem_ `poll()`

- Wenn Zustand & Offsets nur während eines Rebalances gespeichert werden,
  hilft das idempotente Verhalten der Implementierung bei einem Absturz
  nicht.
- Grund: Die automatischen Commits von Kafka werden nicht in den
  gespeicherten Offsets reflektiert.
- D.h., damit die Verbesserung wirkt, muss sicher gestellt sein, dass
  (mindestens) jedes mal, wenn ein Commit erfolgt, auch der Zustand und
  die Offsets in den Daten gespeichert werden.
- Da ein Commit jedes mal ausgelöst werden _kann_, wenn `poll()`
  aufgerufen wird, müssen der Zustand und die Offsets also vor jedem
  Aufruf von `poll()` persistiert werden.
README.sh
src/main/java/de/juplo/kafka/ApplicationRebalanceListener.java
src/main/java/de/juplo/kafka/ApplicationRecordHandler.java
src/main/java/de/juplo/kafka/EndlessConsumer.java
src/main/java/de/juplo/kafka/RebalanceListener.java [new file with mode: 0644]
src/test/java/de/juplo/kafka/GenericApplicationTests.java