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 & CodingAdvanced★ 304⑂ 46AI score 7/10Last updated: Sep 21, 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.