Messaging hướng sự kiện (Spring Boot 3)
Bộ quy tắc giúp Claude viết producer/consumer Kafka, RabbitMQ, Pulsar, JMS trong Spring Boot 3 đúng chuẩn: hợp đồng sự kiện, idempotency, retry, dead-letter và outbox.
Lập trìnhNâng cao★ 257⑂ 40Điểm AI 7/10Cập nhật lần cuối: 14 thg 8, 2026
Làm được gì
Skill nạp cho Claude các nguyên tắc bắt buộc khi sinh hoặc review code messaging Spring Boot 3.
- Hợp đồng sự kiện: envelope bất biến gồm
eventId,eventType,occurredAt,schemaVersionvà payload; coi schema như API, chỉ thêm field tương thích; đặt correlation/causation ID ở header - Producer: chỉ publish sau khi thay đổi trạng thái đã bền vững; dùng transactional outbox khi DB và broker phải nhất quán; partition key tất định khi cần giữ thứ tự theo aggregate; cấu hình rõ delivery timeout và ack
- Consumer: handler idempotent bằng bảng processed-event hoặc ghi tự nhiên idempotent; gói state change và idempotency marker trong cùng transaction; phân loại lỗi tạm thời / lỗi vĩnh viễn trước khi retry; retry có backoff giới hạn rồi đẩy poison message sang dead-letter kèm nguyên nhân và số lần thử
- Kiểm thử: tương thích serialization, idempotency, Testcontainers cho broker, các ca trùng lặp / sai thứ tự / trễ / poison
- Bẫy thường gặp: tưởng broker hỗ trợ transaction là exactly-once, retry vô hạn lỗi validation, publish trong transaction DB mà không có outbox, partition key ngẫu nhiên, deserialize thẳng vào entity JPA
Phù hợp với ai
- Lập trình viên backend Spring Boot (Java/Kotlin) làm microservice với Kafka/RabbitMQ
- Nhóm đang gặp lỗi xử lý trùng, mất message hoặc sai thứ tự
- Tech lead muốn chuẩn hoá tiêu chuẩn review code messaging
Ví dụ sử dụng
- "Publish sự kiện OrderCreated lên Kafka khi tạo đơn" → Claude đề xuất bảng outbox và envelope có schemaVersion
- "Review đoạn @KafkaListener này" → chỉ ra thiếu idempotency, retry không giới hạn, chưa có DLQ
- "Viết integration test cho consumer thanh toán" → dựng broker bằng Testcontainers và test ca trùng lặp, trễ, poison message
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/rrezartprebreza/spring-boot-skills/HEAD/skills/spring-boot-3/event-driven-messaging/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/spring-boot-3/event-driven-messaging từ repo GitHub rrezartprebreza/spring-boot-skills vào ~/.claude/skills/event-driven-messaging/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
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/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone repo:
git clone https://github.com/rrezartprebreza/spring-boot-skills.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Copy toàn bộ thư mục skill (kèm cả thư mục examples):
cp -r spring-boot-skills/skills/spring-boot-3/event-driven-messaging ~/.claude/skills/ - Kiểm tra:
ls ~/.claude/skills/event-driven-messagingphải thấy SKILL.md và examples. - Khởi động lại Claude Code, rồi thử yêu cầu như "refactor consumer Kafka này cho idempotent" trong project Spring Boot của bạn.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT