Implement SAGA Pattern commit and rollback.

This commit is contained in:
Ali CANLI
2022-07-14 15:45:32 +03:00
parent 1f68e35324
commit 22f85a86d8
40 changed files with 343 additions and 118 deletions

View File

@@ -4,25 +4,28 @@ package com.food.order.system.restaurant.messaging.listener.kafka;
import com.food.order.system.kafka.consumer.KafkaConsumer;
import com.food.order.system.kafka.order.avro.model.RestaurantApprovalRequestAvroModel;
import com.food.order.system.restaurant.messaging.mapper.RestaurantMessagingDataMapper;
import com.food.ordery.system.restaurant.domain.service.ports.input.message.listener.RestaurantApprovalRequestMessageListener;
import lombok.RequiredArgsConstructor;
import com.food.order.system.restaurant.domain.service.ports.input.message.listener.RestaurantApprovalRequestMessageListener;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Component
@RequiredArgsConstructor
@Service
public class RestaurantApprovalRequestKafkaListener implements KafkaConsumer<RestaurantApprovalRequestAvroModel> {
private final RestaurantApprovalRequestMessageListener restaurantApprovalRequestMessageListener;
private final RestaurantMessagingDataMapper restaurantMessagingDataMapper;
public RestaurantApprovalRequestKafkaListener(RestaurantApprovalRequestMessageListener restaurantApprovalRequestMessageListener,
RestaurantMessagingDataMapper restaurantMessagingDataMapper) {
this.restaurantApprovalRequestMessageListener = restaurantApprovalRequestMessageListener;
this.restaurantMessagingDataMapper = restaurantMessagingDataMapper;
}
@Override
@KafkaListener(id = "${kafka-consumer-config.restaurant-approval-consumer-group-id}",

View File

@@ -9,7 +9,7 @@ import com.food.order.system.restaurant.domain.core.event.OrderApprovedEvent;
import com.food.order.system.restaurant.domain.core.event.OrderRejectedEvent;
import com.food.order.sysyem.valueobject.ProductId;
import com.food.order.sysyem.valueobject.RestaurantOrderStatus;
import com.food.ordery.system.restaurant.domain.service.dto.RestaurantApprovalRequest;
import com.food.order.system.restaurant.domain.service.dto.RestaurantApprovalRequest;
import org.springframework.stereotype.Component;
import java.util.UUID;

View File

@@ -6,8 +6,8 @@ import com.food.order.system.kafka.producer.KafkaMessageHelper;
import com.food.order.system.kafka.producer.service.KafkaProducer;
import com.food.order.system.restaurant.domain.core.event.OrderApprovedEvent;
import com.food.order.system.restaurant.messaging.mapper.RestaurantMessagingDataMapper;
import com.food.ordery.system.restaurant.domain.service.config.RestaurantServiceConfig;
import com.food.ordery.system.restaurant.domain.service.ports.output.message.publisher.OrderApprovedMessagePublisher;
import com.food.order.system.restaurant.domain.service.config.RestaurantServiceConfigData;
import com.food.order.system.restaurant.domain.service.ports.output.message.publisher.OrderApprovedMessagePublisher;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -19,7 +19,7 @@ public class OrderApprovedKafkaMessagePublisher implements OrderApprovedMessageP
private final RestaurantMessagingDataMapper restaurantMessagingDataMapper;
private final KafkaProducer<String, RestaurantApprovalResponseAvroModel> kafkaProducer;
private final RestaurantServiceConfig restaurantServiceConfigData;
private final RestaurantServiceConfigData restaurantServiceConfigData;
private final KafkaMessageHelper kafkaMessageHelper;

View File

@@ -6,8 +6,8 @@ import com.food.order.system.kafka.producer.KafkaMessageHelper;
import com.food.order.system.kafka.producer.service.KafkaProducer;
import com.food.order.system.restaurant.domain.core.event.OrderRejectedEvent;
import com.food.order.system.restaurant.messaging.mapper.RestaurantMessagingDataMapper;
import com.food.ordery.system.restaurant.domain.service.config.RestaurantServiceConfig;
import com.food.ordery.system.restaurant.domain.service.ports.output.message.publisher.OrderRejectedMessagePublisher;
import com.food.order.system.restaurant.domain.service.config.RestaurantServiceConfigData;
import com.food.order.system.restaurant.domain.service.ports.output.message.publisher.OrderRejectedMessagePublisher;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -19,7 +19,7 @@ public class OrderRejectedKafkaMessagePublisher implements OrderRejectedMessageP
private final RestaurantMessagingDataMapper restaurantMessagingDataMapper;
private final KafkaProducer<String, RestaurantApprovalResponseAvroModel> kafkaProducer;
private final RestaurantServiceConfig restaurantServiceConfigData;
private final RestaurantServiceConfigData restaurantServiceConfigData;
private final KafkaMessageHelper kafkaMessageHelper;