DECISION GUIDE
트랜잭션 경계 판단
트랜잭션을 넓힐수록 정합성은 쉬워지지만, 락 보유 시간과 실패 영향도 함께 커진다.
같은 트랜잭션에 포함
분리하거나 커밋 이후 처리
위험 신호
구분
포함
분리
확인
원자성
함께 성공해야 하는 DB 변경
실패해도 본 업무가 유지되는 로그
부분 성공을 허용할 수 있는가
시간
짧은 조회와 갱신
HTTP, 파일, 메일, 결제 승인 대기
락을 오래 잡는 경로가 있는가
복구
롤백으로 되돌릴 수 있는 변경
보상 트랜잭션이 필요한 부작용
재시도해도 안전한가
핵심: DB 롤백이 외부 세계까지 되돌려 주지는 않는다. 외부 부작용은 별도 경계로 설계한다.