인프런 커뮤니티 질문&답변
안녕하세요 강사님 질문있습니다.!!
작성
·
8
·
수정됨
0
안녕하세요. 강사님 강의 잘 들었습니다.
한가지 질문이 있습니다.
주문 생성과 주문 처리api를 나누고 사용자가 결제가 되면 주문 처리 api를 호출하는걸로 알고있습니다.
이때 주문 처리 api에서 Orchestartation 방식으로 OrderConfirmEvent를 발행하면 제 서비스로 예를 들면 재고, 쿠폰, 적립금 서비스에서 consume하여 처리를 하고 있습니다.
그런데 주문 처리 api에서 재고는 처리되었지만 쿠폰은 실패할 경우 어떻게 보상 트랜잭션을 주어야할지 모르겠습니다.
Orchestartation 방식으로 처리할거면 OrderConfirmEvent로 한번에 처리하는게 아니라 StockConfirmEvent, CouponConfirmEvent, PointConfirmEvent 이렇게 각각 보내주어야 할까요?
결제가 된 주문이라 바로 보상을 하는것 보다는 dlt topic에 넣고 재처리를 하고 만약 재시도 3번을 하고 나서 실패할 경우 환불을 해줘야할까요?
주문 처리 api에서는 어디가 실패한지 모르니까요 혹시 어떤식으로 해야할지 조언좀 받을수 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 정인호님께서 질문하신 내용을 바탕으로 유사한 질문과 답변을 찾아보았습니다.
질문의 핵심은 주문 처리 API에서 부분 실패 시 보상 트랜잭션을 어떻게 구현할 것인지 에 관한 것이라고 생각합니다. 이러한 상황에서 직접적으로 관련된 기존 질문과 답변이 몇 가지 있습니다. 각각 읽어보시면 도움이 되실 것입니다.
“Kafka를 활용한 분산 트랜잭션에서 오류 복구 전략”
- 이 답변에서는 Kafka를 사용하여 분산 트랜잭션 중 오류가 발생했을 때 이를 복구하기 위한 다양한 전략에 대해 설명합니다. Dead Letter Topic(DLT)을 사용하여 특정 이벤트가 실패할 경우, 이를 다른 곳에 저장하여 후속 조치를 어떻게 취할 수 있는지를 설명하고 있습니다.
- 이 답변에서는 Kafka를 사용하여 분산 트랜잭션 중 오류가 발생했을 때 이를 복구하기 위한 다양한 전략에 대해 설명합니다. Dead Letter Topic(DLT)을 사용하여 특정 이벤트가 실패할 경우, 이를 다른 곳에 저장하여 후속 조치를 어떻게 취할 수 있는지를 설명하고 있습니다.
-
- 이 게시물에서는 주문 처리 중 발생할 수 있는 다양한 이슈, 특히 재고 부족과 같은 상황에서 어떻게 이를 검출하고 처리할 수 있는지 다룹니다. 기술적 전략 외에도 사용자 경험 측면에서 고려할 요소에 대한 정보를 제공합니다.
- 이 게시물에서는 주문 처리 중 발생할 수 있는 다양한 이슈, 특히 재고 부족과 같은 상황에서 어떻게 이를 검출하고 처리할 수 있는지 다룹니다. 기술적 전략 외에도 사용자 경험 측면에서 고려할 요소에 대한 정보를 제공합니다.
-
- 이 답변에서는 Kafka의 DLT를 활용하여 이벤트 발생 시 재처리를 몇 번까지 시도할 것인지에 관한 전략을 논의하고 있습니다. 일정 횟수 재처리 후에도 실패하면 어떻게 처리할지를 다루고 있어, 비즈니스 로직에 참고하실 만한 내용입니다.
- 이 답변에서는 Kafka의 DLT를 활용하여 이벤트 발생 시 재처리를 몇 번까지 시도할 것인지에 관한 전략을 논의하고 있습니다. 일정 횟수 재처리 후에도 실패하면 어떻게 처리할지를 다루고 있어, 비즈니스 로직에 참고하실 만한 내용입니다.
재고 및 다른 서비스의 처리 실패 시에는 DLT를 활용하여 이벤트를 재처리하고, 실패가 연속될 경우 사용자에게 환불 절차를 시작하는 것이 좋은 전략이 될 수 있습니다. 또한 각 이벤트의 처리가 어디서 실패했는지를 추적할 수 있도록 로그를 통해 모니터링하는 시스템을 구축하는 것이 필수적입니다. 이는 보상 트랜잭션이 필요할 때 신속하게 대응할 수 있도록 도와줄 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




