2 · Publishing
@Component
@RequiredArgsConstructor
public class OrderEventPublisher {
private final KafkaTemplate<String, OrderCreatedEvent> kafkaTemplate;
public void publishOrderCreated(Order order) {
var event = new OrderCreatedEvent(order.getId().toString(),
order.getCustomerId(), order.getTotalAmount(), Instant.now().toString());
kafkaTemplate.send("order-events", order.getId().toString(), event);
}
}
In OrderService, after saving: eventPublisher.publishOrderCreated(savedOrder);
Topic order-events, key = order id, value = the event as JSON.