보상 트랜잭션과 Fallback 메서드의 차이점

자라나는 ㅇㅅㅇ개발자·2024년 10월 28일
0

TIL

목록 보기
178/183

MSA 프로젝트를 진행하며 서비스간의 요청에서 서버에 문제가 생겼을 경우 해결하는 방법에 대해 알아보던 중 보상 트랜잭션과 Fallback 메서드에 대해 알게되었고, 적용해보기 위해 이 둘의 차이점에 대해 알아보게되었다.


보상 트랜잭션

보상 트랜잭션은 분산 트랜잭션에서 일부가 실패했을 때 이전에 성공적으로 완료된 트랜잭션을 되돌리는 역할을 한다.
예를 들어 A 서비스에서 주문을 처리하고 B 서비스에서 결제를 진행했는데 결제 과정에서 오류가 발생했다면, A 서비스에서의 주문을 취소하는 트랜잭션을 실행하여 데이터의 일관성을 유지할 수 있다.

Fallback 메서드

Fallback 메서드는 주로 API 호출이나 외부 서비스와의 통신에서 사용되는 패턴으로, 만약 외부 서비스가 응답하지 않거나 오류가 발생했을 때 대체 로직을 실행하여 시스템의 안정성을 높이는 방법이다.
예를 들어 사용자가 상품 정보를 요청했는데 외부 API가 응답하지 않는 경우, 캐시된 데이터를 반환하거나 기본값을 제공하는 방식이다.


보상 트랜잭션과 Fallback 메서드의 차이점

보상 트랜잭션과 Fallback 메서드는 모두 오류 처리와 관련이 있지만 그 목적과 사용되는 상황이 다르다.
보상 트랜잭션은 주로 데이터의 일관성을 유지하기 위해 사용되며 여러 서비스 간의 트랜잭션을 관리하는 데 초점을 맞추고,
Fallback 메서드는 외부 서비스와의 통신에서 발생할 수 있는 오류를 처리하기 위한 대체 로직을 제공하는 데 중점을 두고 있다.


보상 트랜잭션의 활용 사례

보상 트랜잭션은 주로 전자상거래 시스템에서 많이 사용된다.
사용자가 상품을 구매할 때 주문 생성, 결제, 재고 차감 등의 여러 서비스가 연관되어있는데
이 중 하나라도 실패하면 전체 프로세스가 무효화되어야 하기 때문에 이 때 보상 트랜잭션을 통해 이전 단계에서의 작업을 되돌려 데이터의 일관성을 유지할 수 있다.

Fallback 메서드의 활용 사례

Fallback 메서드는 주로 마이크로서비스 아키텍처에서 API 호출 시 많이 사용된다.
사용자가 상품 정보를 요청했을 때 외부 API가 응답하지 않으면 캐시된 데이터를 반환하거나 기본값을 제공하는 방식으로 시스템의 가용성을 높이고 사용자 경험을 개선할 수 있다.

0개의 댓글

관련 채용 정보