← ClaudeAtlas

kafka-consumerlisted

Spring Kafka consumer conventions — @KafkaListener, manual ack modes, DLT pattern, retry topic, idempotency via dedup store, JSON/Avro deserialization. Auto-loads when editing `**/*Listener*.java`, `**/*Consumer*.java` in projects with messaging=kafka.
taipt1504/claudehut · ★ 1 · AI & Automation · score 64
Install: claude install-skill taipt1504/claudehut
# Kafka Consumer ## Quick start ```java @Component @RequiredArgsConstructor @Slf4j public class OrderEventListener { private final ShippingJobService shippingService; private final EventDedupStore dedupStore; @KafkaListener(topics = "order.created", groupId = "shipping-svc", containerFactory = "kafkaListenerContainerFactory") public void onOrderCreated(@Payload OrderCreatedEvent event, @Header(KafkaHeaders.RECEIVED_KEY) String key, Acknowledgment ack) { try { if (dedupStore.alreadyProcessed(event.id())) { log.info("event {} already processed, skipping", event.id()); ack.acknowledge(); return; } shippingService.createJob(event); dedupStore.markProcessed(event.id()); ack.acknowledge(); } catch (TransientFailureException ex) { // don't ack; let listener retry throw ex; } catch (Exception ex) { log.error("non-recoverable error processing {}", event.id(), ex); ack.acknowledge(); // ack to prevent loop; goes to DLT via error handler throw ex; } } } ``` Detailed: `references/ack-modes.md`, `references/dlt-retry-topic.md`, `references/idempotency.md`, `references/anti-patterns.md`. ## Assets - `assets/templates/KafkaListener.java.tmpl` ## Hard rules - ALWAYS manual ack mode (`