What problem does it solve? Publishing events directly alongside database writes causes lost or duplicated messages when one side fails, and naive consumers reprocess duplicate deliveries. This Skill provides the canonical Spring Boot patterns for reliable async messaging so services publish and consume domain events without data loss or double-processing. ## Core Features & Use Cases - Transactional Outbox: Writes events to an outbox table in the same database transaction as the entity, then relays them asynchronously to the broker, eliminating the save-then-publish race. - Idempotent Consumer: Deduplicates incoming events via a processed-events table with an event-id header, making at-least-once delivery safe. - Dead-Letter & Schema Management: Configures retry with exponential backoff, dead-letter topics with alerting, and versioned Avro/Protobuf/JSON-Schema contracts checked for compatibility. - Use Case: When adding a Kafka consumer for document-created events to a Spring Boot service, apply this Skill to get the idempotent listener, outbox-backed producer, DLT policy, and partition-key strategy in one pass. ## Quick Start Apply the messaging skill to add an idempotent Kafka consumer and transactional outbox producer for document events in this Spring Boot service.