DECISION GUIDE

트랜잭션 경계 판단

트랜잭션을 넓힐수록 정합성은 쉬워지지만, 락 보유 시간과 실패 영향도 함께 커진다.

같은 트랜잭션에 포함
분리하거나 커밋 이후 처리
위험 신호
구분
포함
분리
확인
원자성

함께 성공해야 하는 DB 변경

실패해도 본 업무가 유지되는 로그

부분 성공을 허용할 수 있는가

시간

짧은 조회와 갱신

HTTP, 파일, 메일, 결제 승인 대기

락을 오래 잡는 경로가 있는가

복구

롤백으로 되돌릴 수 있는 변경

보상 트랜잭션이 필요한 부작용

재시도해도 안전한가

핵심: DB 롤백이 외부 세계까지 되돌려 주지는 않는다. 외부 부작용은 별도 경계로 설계한다.