SHORT TRANSACTION

트랜잭션 경계 축소

외부 대기 시간을 트랜잭션 밖으로 빼면 락 점유 시간과 데드락 가능성이 크게 줄어든다.

락을 잡은 채 대기
DB 변경만 짧게 처리
커밋 이후 비동기 처리
넓은 경계

트랜잭션 안에서 외부 API 응답을 기다리면 DB 락이 외부 지연에 묶인다.

락 장기 보유장애 전파
좁은 경계

DB 변경을 먼저 확정하고 후속 알림은 이벤트, Outbox, 작업 큐로 분리한다.

짧은 커밋재시도 가능
1사전 검증입력과 정책을 트랜잭션 밖에서 최대한 확인
2DB 변경필요한 행만 잠그고 빠르게 커밋
3후속 발행커밋 이후 메시지나 작업 큐에 위임