README sumup-adder--springified--drop-duplicates
authorKai Moritz <kai@juplo.de>
Sat, 17 Sep 2022 08:31:17 +0000 (10:31 +0200)
committerKai Moritz <kai@juplo.de>
Tue, 20 Sep 2022 16:11:57 +0000 (18:11 +0200)
commit1f1af94bd138b01b6dbd1d5bb164b4f3bb106e67
tree1b70dd98e8c68d504b395d193f99c848fc08a9e2
parent7083f2ec840ec8819a7f86b5df12da5743ea395f
README

* Geht nicht (effizient), weil: Damit keine Nachrichten verloren gehen,
  muss der Zustand _mindestens_ vor jedem `poll()` -- genauer: vor jedem
  Commit -- gesichert werden.
* Mögliche, aber nur mäßig effizient und/oder komplexe Lösungen:
** Mit AckMode.MANUAL könnten immer erst nach einem Speichern des Zustands
   die zugehörigen Nachrichten bestätigt werden.
** Dann wäre sichergestellt, dass die bestätigte Offset-Position nie
   weiter in der Zukunft liegt, als die bereits verarbeiteten und als
   neuer Zustand gesicherten Nachrichten.
** Eine weitere billige und extrem uneffiziente Möglichkeit wäre, den
   Zustand nach _jeder_ verarbeiten Nachricht zu speichern!
* *Vielleicht doch sinnvoll möglich*, aber nur mit bei Batch-Verarbeitung
* Dort könnte dann eingentlich wie in der Implementierung für Apache Kafka
  einfach nach jedem verarbeiteten Batch ein Commit durchgeführt werden.
* *Außerdem:* Wenn die Daten eh je Record einzeln in einer DB gespeichert
  werden, spricht nichts dagegen, mit jedem Datensatz auch den Offset zu
  speichern! (Es wird dann lediglich die Ermittlung des letzten Offsets
  ein bischen komplizierter...)