Inspect failed Kafka messages. Fix the JSON and send them again.
Java 21 / 25 · Spring Boot · React · TypeScript · Self-hosted · MIT
Download · User guide · Architecture
Real application capture using the included sample messages.
- Shows messages from a Kafka dead-letter topic: the place failed messages are sent.
- Lets you edit JSON and review exactly what will be sent.
- Replays selected messages at a chosen rate and keeps a delivery history.
Inspection and replay leave the original messages and production consumer offsets unchanged.
Requires only Docker and Git:
git clone https://github.com/lMysticl/dlqdesk.git
cd dlqdesk
docker compose --profile app up -d --build --waitThe first build takes a few minutes. Without Docker for the app, run Kafka with
docker compose up -d --wait, download
dlqdesk-0.3.0.jar
and start it with Java 21 or 25:
java -jar dlqdesk-0.3.0.jar --spring.profiles.active=demo --dlqdesk.bootstrap-servers=localhost:59092- Open localhost:8092.
- Use Use the bundled local demo token, connect and choose Add 12 demo records.
- Inspect a message, fix its JSON if needed, select it and choose Create preview.
- Review the preview, then choose Start replay. Check the delivery history.
Stop the demo with docker compose --profile app down. Delivery history is kept in the dlqdesk-data volume (in ./data/ when you run the JAR); the bundled demo token is public.
Follow the deployment guide to configure your token, broker and topics. Run without the demo profile.
v0.3.0 supports one application instance, one source/target pair and up to 100 JSON messages per replay. SENT means Kafka accepted the message, not that the receiving application processed it. Uncertain delivery needs review; replay can produce duplicates. See delivery semantics and security.
Build and test · Test coverage · Compatibility · Design · Technical article
Built by Pavlo Putrenkov. MIT license.