Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

Event-Driven Messaging (Spring Boot 3)

Guardrails for building Kafka, RabbitMQ, Pulsar, and JMS producers/consumers in Spring Boot 3 with versioned event contracts, idempotency, bounded retries, DLQs, and the transactional outbox.

Dev & CodingAdvanced25740AI score 7/10Last updated: Aug 14, 2026

What it does

Gives Claude a concrete rulebook to follow whenever it writes or reviews Spring Boot 3 messaging code.

  • Event contract: immutable envelope with eventId, eventType, occurredAt, schemaVersion, plus payload; treat published schemas as APIs; correlation/causation IDs in headers; never publish JPA entities
  • Producer rules: publish only after the state change is durable, transactional outbox when DB and broker must agree, deterministic partition keys for per-aggregate ordering, explicit delivery timeout and acks
  • Consumer rules: idempotent handlers via a durable processed-event record, one transaction around state change + idempotency marker, classify transient vs permanent failures, bounded retries with backoff, poison messages to a dead-letter destination with original payload, reason, and attempt count
  • Testing: serialization compatibility, handler idempotency, Testcontainers broker tests, duplicate/reordered/delayed/poison scenarios
  • Gotchas: assuming exactly-once because the broker has transactions, retrying validation errors forever, publishing inside a DB transaction without an outbox, random partition keys, deserializing into entities

Who it's for

  • Spring Boot (Java/Kotlin) backend engineers running Kafka or RabbitMQ microservices
  • Teams fighting duplicate processing, lost events, or broken ordering
  • Tech leads who want a shared review standard for messaging code

Example uses

  1. "Publish an OrderCreated event to Kafka when an order is created" → Claude proposes an outbox table and a versioned envelope instead of an in-transaction send
  2. "Review this @KafkaListener" → flags missing idempotency marker, unbounded retries, and no dead-letter route
  3. "Write integration tests for the payment consumer" → spins up a broker with Testcontainers and covers duplicate, delayed, and poison messages

· · · Install guide · · ·

Try it now, no install

Paste this into Claude to use the skill without installing anything.

Read the instructions in this file and follow them to help me:
https://raw.githubusercontent.com/rrezartprebreza/spring-boot-skills/HEAD/skills/spring-boot-3/event-driven-messaging/SKILL.md

What I want: (describe your task here)

If Claude can't open the link, open it yourself and paste the contents instead.

If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the skills/spring-boot-3/event-driven-messaging folder from the GitHub repo rrezartprebreza/spring-boot-skills into my ~/.claude/skills/event-driven-messaging/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

git clone https://github.com/rrezartprebreza/spring-boot-skills.git /tmp/sbs && mkdir -p ~/.claude/skills && cp -r /tmp/sbs/skills/spring-boot-3/event-driven-messaging ~/.claude/skills/

This is a third-party skill. Check the source repository before installing.

  1. Open a terminal and clone the repo: git clone https://github.com/rrezartprebreza/spring-boot-skills.git
  2. Create the skills directory: mkdir -p ~/.claude/skills
  3. Copy the whole skill folder so the referenced examples come with it: cp -r spring-boot-skills/skills/spring-boot-3/event-driven-messaging ~/.claude/skills/
  4. Verify with ls ~/.claude/skills/event-driven-messaging — you should see SKILL.md (and an examples folder if shipped).
  5. Restart Claude Code and try a prompt like "make this Kafka consumer idempotent and add a DLQ" inside your Spring Boot project.