messaging-patterns

Configure Kafka and RabbitMQ messaging patterns for Spring Boot microservices.

Updated Mar 26, 2026
One-click install
npx skills add https://github.com/RogerioSobrinho/codeme-copilot --skill messaging-patterns
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: messaging-patterns
Source: https://github.com/RogerioSobrinho/codeme-copilot/tree/main/skills/messaging-patterns
Command: npx skills add https://github.com/RogerioSobrinho/codeme-copilot --skill messaging-patterns

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Designing reliable, end-to-end messaging across Spring Boot microservices using established patterns like idempotent consumers, the outbox pattern, transactional events, and dead-letter queues.

Core Features & Use Cases

  • Idempotent consumer and exactly-once-style processing to prevent duplicates
  • Outbox pattern to guarantee event publication only after DB commit
  • Transactional in-process events with @TransactionalEventListener
  • Schema registry support and Avro integration for event schemas
  • RabbitMQ and Kafka configuration best practices including DLQ and acks handling
  • Monitoring and operational guidance for consumer lag and error handling

Quick Start

Wire the provided Kafka and RabbitMQ patterns into your Spring Boot project and implement the documented best practices.

Frequently Asked Questions about messaging-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement the outbox pattern in Spring Boot to guarantee event publication?

The outbox pattern in Spring Boot guarantees event publication only after the database commit by writing events to an outbox table within the same transaction, ensuring reliable messaging without dual-write inconsistencies.

What's the best way to prevent duplicate processing with idempotent consumers in Kafka or RabbitMQ?

Idempotent consumers prevent duplicate processing in Kafka and RabbitMQ by tracking consumed message identifiers, enabling exactly-once-style processing and ensuring duplicate messages do not trigger redundant side effects.

How do I configure dead-letter queues and error handling for Spring Boot RabbitMQ consumers?

Dead-letter queues for Spring Boot RabbitMQ consumers are configured by setting up dead-letter exchanges and routing keys, allowing failed messages to be redirected for operational monitoring and retry handling.

Does this messaging patterns guidance support both Kafka and RabbitMQ integrations in microservices?

Yes, this messaging patterns guidance supports both Kafka and RabbitMQ integrations in Spring Boot microservices, providing producer and consumer configuration, schema registry support, and transactional boundary management for both platforms.

How do transactional in-process events work with @TransactionalEventListener in Spring Boot?

Transactional in-process events with @TransactionalEventListener in Spring Boot fire after database transaction completion, ensuring that event listeners only execute when the originating transaction commits successfully.

When do I need a schema registry and Avro integration for microservices messaging?

You need a schema registry and Avro integration for microservices messaging when enforcing event schema contracts, ensuring producer and consumer compatibility, and preventing serialization errors across distributed systems.