스케줄러와 상태 관리를 통한 분할 트랜잭션과 복구 로직 설계
·
프로젝트/트러블 슈팅
단일 트랜잭션으로 인한 문제https://tojaman.tistory.com/188 현재 트랜잭션 범위는 결제 정보 검증 및 스케줄 점유 → 결제 API 호출 → 결제/매칭 완료 처리 순으로 되어 있다.위 작업들을 하나의 트랜잭션으로 묶게 되면 외부 API 요청 대기로 인해 트랜잭션의 시간이 매우 길어질 수 있고, 이로 인해 다음 문제가 발생할 수 있다.커넥션 풀 부족트랜잭션이 커넥션을 붙잡고 오래 대기하게 되면 커넥션 풀이 고갈 되어 이후 요청들을 대기 큐에 들어가게 된다.이로 인해 타임 아웃이 발생하고 처리 성능이 저하될 수 있다.잠금 대기트랜잭션에서 락을 거는 경우 이후 요청들이 락을 대기하게 되며 대기 시간이 길어진다. (상황에 따라 데드락 발생 가능성도 높아짐)타임 아웃으로 인한 불일치결제 AP..