A small Quarkus + Kafka playground that lets you run a local Kafka stack via Podman and push messages through a simple pipeline.
This repo ships a local stack defined in docker-compose.yml:
- Kafka (KRaft mode, no ZooKeeper)
- Kafka Connect (REST API on
:8083) - Kafbat UI (web UI on
:8080) - Apicurio Registry (HTTP API/UI on
:8082, backed by Postgres) - Postgres (for Apicurio storage, on
:5432) - A one-shot init container that creates the demo topics
podman-compose up -dpodman-compose down- Kafka (internal / containers):
kafka:9092 - Kafka (from your laptop/tools):
localhost:29092 - Quarkus Backend REST: http://localhost:9090
- Kafka Connect REST: http://localhost:8083
- Kafbat UI: http://localhost:8080
- Apicurio Registry:
- UI/API base: http://localhost:8082
- v3 API base: http://localhost:8082/apis/registry/v3
- Confluent-compatible API (used by Kafbat UI): http://localhost:8082/apis/ccompat/v7
- Postgres (optional access):
localhost:5432(db/user/pass:registry)
The compose stack auto-creates these topics on startup:
example-input-v1example-output-v1
The app demonstrates a minimal end-to-end flow:
- The REST endpoint publishes to the input topic.
InputConsumerconsumes, transforms the payload, then publishes to the output topic.- (Optional) You can observe output via Kafka tooling / UI.
Dev mode:
./mvnw quarkus:devCall the endpoint with a value query param.
- It will generate a random UUID as Kafka record key
- It will publish the query param string as the record value
curl "http://localhost:8080/publish?value=hello"Expected response:
{"key":"<uuid>","value":"hello"}./mvnw package
java -jar target/quarkus-app/quarkus-run.jar