Learning
Hands-on study notes from labs and courses I actually built and ran — not theory in a vacuum.
Each track links to source code, how to run it, and what each example proves.
Apache Kafka Lab (featured)
A local lab with 8 practical cases (Spring Boot + Kafka Streams).
You can clone it, run it, and match every blog post to real code.
| Resource | Link |
|---|---|
| Source code (GitHub) | Qleoz12/curso-apache-kafka-master |
| Run on Windows | Kafka Lab — Windows Setup |
| Copy-paste cURL | Try It Yourself |
What is in the repo?
Three runnable modules:
| Module | Port | Role |
|---|---|---|
| str-producer | 8097 | REST API — you send HTTP here; it publishes to Kafka |
| str-consumer | 8197 | @KafkaListener — processes messages (Cases 01–07) |
| str-streams | — | Kafka Streams topologies (Case 08a/b/c) |
| Kafka + Kafdrop | 9092 / 19000 | Broker + UI to inspect topics |
HTTP (curl/Postman) → str-producer :8097 → Kafka :9092 → str-consumer :8197
↓
str-streams (Case 08 only)
Golden rule: to publish a message, always call the producer (8097).
The consumer (8197) is for logs and Case 07 GET queries — not for sending lab messages.
All cases — what each one does
Use this table to find the example you need. Full curls are in Try It Yourself.
| Case | What you learn | HTTP endpoint | Kafka topic | What to verify |
|---|---|---|---|---|
| 01 | Basic producer/consumer, partitions, consumer groups | POST /casos/01-basico |
str-topic |
Producer logs partition/offset; consumer logs [CASO-01] |
| 02 | Message key → same key, same partition, order per entity | POST /casos/02-con-key |
order-topic |
Same orderId always same partition |
| 03 | JSON events, typed serialization | POST /casos/03-evento-json |
user-event-topic |
Consumer logs user action (LOGIN, etc.) |
| 04 | Retry + Dead Letter Topic on invalid data | POST /casos/04-pago |
payment-topic |
Valid payment succeeds; negative amount → DLT after retries |
| 05 | Request-reply over Kafka (sync HTTP, async broker) | POST /casos/05-request-reply |
request-topic / reply-topic |
HTTP body Echo: ... |
| 06 | RecordInterceptor — filter/transform before listener | POST /casos/06-texto-filtro |
text-filter-topic |
Tabulated analysis in consumer logs |
| 07 | Kafka → SQLite persistence + REST read API | POST /casos/07-inventario |
inventory-topic |
GET /casos/07-inventario/resumen on 8197 |
| 08a | Kafka Streams Pipe (passthrough topology) | POST /casos/08a-pipe |
streams-plaintext-input → streams-pipe-output |
Run run-streams-pipe.bat; check Kafdrop |
| 08b | Kafka Streams LineSplit (flatMapValues) |
POST /casos/08b-linesplit |
→ streams-linesplit-output |
One line becomes many words in output topic |
| 08c | Kafka Streams WordCount (groupBy + count + KTable) |
POST /casos/08c-wordcount |
→ streams-wordcount-output |
Word counts in Kafdrop; state store counts-store |
Case 08: start one Streams app (run-streams-pipe.bat, linesplit, or wordcount). Consumer (8197) is not required for Case 08.
Suggested reading order (Kafka)
Read in this order if you are new to the lab:
- Architecture — who does what (producer vs consumer vs streams)
- Concepts I Learned — broker, topic, partition, DLT, interview notes
- Try It Yourself — run every case with cURL
- Kafka Streams — Pipe, LineSplit, WordCount — Case 08 deep dive
Quick start (local)
1. git clone https://github.com/Qleoz12/curso-apache-kafka-master
2. docker compose up -d
3. run-consumer.bat (Cases 01–07; skip for 08)
4. run-producer.bat
5. curl → see Try It Yourself post
6. Kafdrop → http://localhost:19000
For JDK 17 / JEnv on Windows: setup guide.
Data & statistics (course notes)
Notes from DANA 4830 / 4840 and related coursework — R, clustering, feature selection.
| Topic | Start here |
|---|---|
| Feature selection (paper overview) | DANA 4830 — Feature selection paper |
| Univariate selection | Chi2, ANOVA, MI, Pearson, ReliefF |
| Multivariate (mRMR, CFS) | Part 1 · Part 2 |
| Clustering & distances | Year archive — filter posts tagged statistics |
SQL & fundamentals
| Topic | Post |
|---|---|
| SQL (HackerRank review) | Fundamentals SQL |
| Testing basics | Fundamentals testing |
| Correlations & p-values | Stats correlations |
More: year archive or categories.
How these posts are written
Each technical post tries to answer:
- What is the concept?
- Why does it exist?
- Where does it appear in my lab or project?
- Example you can run
- Interview version — 1–3 sentences
If you only want runnable examples, use the case table above and Try It Yourself.