Version des `spring-consumer` mit einer vollständigen Fehlerbehandlung consumer/spring-consumer--error-handling consumer/spring-consumer--error-handling--2025-03-18--19-42 consumer/spring-consumer--error-handling--2025-03-signal consumer/spring-consumer--error-handling--2025-04-signal
authorKai Moritz <kai@juplo.de>
Sat, 11 Jan 2025 16:10:02 +0000 (17:10 +0100)
committerKai Moritz <kai@juplo.de>
Sat, 15 Mar 2025 18:24:42 +0000 (19:24 +0100)
commitd01eca47127638c35a72f430f4a67bd8c289ebb5
treea4c347eb9093a58bdd889693b29ccaf322f997d1
parent2faf1c55cd82ea29b5a7b484a069fd572d7aab49
Version des `spring-consumer` mit einer vollständigen Fehlerbehandlung

* Exceptions & Konfig für wiederholbare und nicht wiederholbare Fehler
* RED: Erwartetes Verhalten für die Fehlerbehandlung definiert
* GREEN: Erweitertes Error-Handling implementiert
* Timout für den Poll-Request konfigurierbar gemacht
* Timings für den `ExampleConsumerTest` enger gezogen
* Keine Verzögerung für Fehler in den Retry-Tests
* Zusätzliche Logging-Meldung für Retry-Ablauf
* Nicht ausgewertete Unterscheidung entfernt
* Erzeugung des `ExampleConsumer` im Tests über Methode konfigurierbar
* GREEN: Erwartetes Verhalten für unterschiedliche Delays definiert
* Slack für Poll-Intervall ist explizit konfigurierbar
* Test für Retries mit fixem Back-Off in `ExampleConsumerTest` ergänzt
* Der Offset eines inaktiven `BackOffState` sollte ein ungültiger Wert sein
* Innere Klasse `BackOffState` statisch gemacht
* Innere Klasse `BackOffState` extrahiert
* Logging in `BackOffState` verbessert
* Eindeutigere Methodennamen in `BackOffState`
* RED - Unit-Test für `BackOffState` implementiert
* GREEN - Fehler in der Initialisierung von `BackOffState` korrigiert
* Doppelten Code in `BackOffStateTest` in Methoden ausgelagert
* Mocking mit `@Mock` auf Klassenebene erspart Parameter-Schlacht
* Aussagelose Tests aus `BackOffStateTest` entfernt
* BackOff-Zeit in `BackOffStateTest` in statische Variable ausgelagert
* Logging-Meldung des `BackOffState` vereinfacht und verbessert
* RED: Korrigiertes Verhalten für `BackOffState` definiert
* GREEN: Implementierung von `BackOffState` korrigiert
* Umstellung des `ExampleConsumerTest` auf AssertJ
* `fetch.max.wait` konfigurierbar gemacht
* Test für viele Fehler in einer Partition in `BackOffStateTest` ergänzt
* Überprüfung des ``BackOffState``-Zustands berücksichtigt immer den Offset
* Bedingungsloser Reset (und besserer Methoden-Name) für `BackOffState`
* `BackOffState` wird nur 1x erzeugt und danach zurückgesetzt und gestartet
* Überflüssiges Attribut in `BackOffState` entfernt
15 files changed:
README.sh
build.gradle
docker/docker-compose.yml
pom.xml
src/main/java/de/juplo/kafka/ApplicationConfiguration.java
src/main/java/de/juplo/kafka/ApplicationProperties.java
src/main/java/de/juplo/kafka/BackOffState.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/ExampleConsumer.java
src/main/java/de/juplo/kafka/NonRetriableErrorException.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/RecordHandler.java
src/main/java/de/juplo/kafka/RetriableErrorException.java [new file with mode: 0644]
src/main/resources/application.yml
src/test/java/de/juplo/kafka/BackOffStateTest.java [new file with mode: 0644]
src/test/java/de/juplo/kafka/ExampleConsumerTest.java
src/test/java/de/juplo/kafka/MockRecordHandler.java