From c7f63c52072b3d5fd26f84ad958850d87d478ddf Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Fri, 22 May 2026 12:28:45 +0200 Subject: [PATCH] =?utf8?q?CLAUDE.md=20um=20Hinweise=20zur=20Gliederung=20u?= =?utf8?q?nd=20Verwendung=20der=20=C3=9Cbungs-Bl=C3=B6cke=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 24aaf4a4..b19a5112 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -26,6 +26,55 @@ Branch name prefixes group exercises by topic: Each branch variable in `BRANCHES.sh` has a corresponding `__ROOT` variable that defines its rebase parent, forming a directed dependency chain of exercises. +## Technical Gaps Between The Exercise Groups + +Common aspects of all exercise groups: + +- All exercises have the main focus on the Kafka and Spring Kafka APIs +- Other technologies are used as needed +- If used, other technologies are used to simplify the code and/or setup + +The exercise groups start with simple examples and basic usage. +Later exercise groups introduce more advanced features and use cases. +The order of the exercise groups is: + +0. `grundlagen/docker` — Usage of Docker Compose in the exercises, explanations of implied knowledge +1. `grundlagen/*` — Basic usage and simple examples +2. `producer/*` & `consumer/*` — Advanced aspects and usage of the respective Producer and Consumer API +3. `springkafka/*` — Features added by Spring Kafka and usage/integration of the library + +The technical gaps between these groups of exercises are bridged by the livecodings, that are maintained in the branches suffixed with `--livecoding--schritte`. +The purpose of these livecodings is: + +- ... to keep the focus on Kafka and Spring Kafka +- ... to enable the attendees to fully understand the given examples +- ... to enable attendees to follow, even if they are not accustomed with all "off-topic" technologies, that are only used to simplify and support the code and setup of the exercises + +### `grundlagen/*` + +- Contains exercises for consumers and producers +- Uses only the Kafka Consumer/Producer APIs +- Uses only plain Java: no Spring features are used in the implementation +- Needs extra code and setup for technical aspects + - Thread-Handling and parallel execution + - Clean shutdown + - Packaging as a Docker image +- The needed extra code and setup should be as simple as possible, but fully functional + +### `producer/*` and `consumer/*` + +- Contains extended exercises for the Consumer and Producer API of Kafka +- Uses features from Spring Boot to simplify the code and setup +- Spring Kafka is _not_ the topic of these exercises — but it may be already used in included test cases +- Explains Best Practices for the usage of the Producer and Consumer APIs of Kafka + +### `springkafka/*` + +- Contains extended exercises for Features introduced by Spring Kafka +- Explains Best Practices for Spring Kafka +- Also shows, which features should be used for which use cases +- It is the opinion of the author, Spring Kafka contains very useful features, albeit not all features are meant for common adoption, but were introduced for rather exotic use cases or to enable the implementation of other specialized Spring Libraries + ## Each Exercise Branch A typical exercise branch contains: -- 2.39.5