← ClaudeAtlas

kafka-producerlisted

Spring Kafka producer conventions — idempotent producer config, transactional outbox pattern, Schema Registry integration, JSON/Avro serialization, retry + backoff. Auto-loads when editing `**/*Producer*.java`, `**/*Publisher*.java` in projects with messaging=kafka.
taipt1504/claudehut · ★ 1 · AI & Automation · score 62
Install: claude install-skill taipt1504/claudehut
# Kafka Producer ## Quick start ```java @Component @RequiredArgsConstructor @Slf4j public class OrderEventPublisher { private final KafkaTemplate<String, OrderEvent> kafkaTemplate; public CompletableFuture<SendResult<String, OrderEvent>> publish(OrderEvent event) { return kafkaTemplate.send("order.created", event.orderId(), event) .whenComplete((result, ex) -> { if (ex != null) { log.error("failed to publish {}", event.orderId(), ex); } else { log.info("published {} to {}-{}@{}", event.orderId(), result.getRecordMetadata().topic(), result.getRecordMetadata().partition(), result.getRecordMetadata().offset()); } }); } } ``` ## Idempotent producer config ```yaml spring: kafka: producer: acks: all properties: enable.idempotence: true max.in.flight.requests.per.connection: 5 retries: 2147483647 delivery.timeout.ms: 120000 ``` Exactly-once-per-partition with `enable.idempotence`. ## Transactional outbox Detailed: `references/transactional-outbox.md` and `references/idempotent-producer.md`. Schema Registry: `references/schema-registry.md`. ## Assets - `assets/templates/KafkaProducer.java.tmpl` ## Hard rules - ALWAYS `enable.idempotence: true`. - ALWAYS `acks: all`. - USE transactional outbox for "publish + DB write" atom