Transaction boundary
NestJS 트랜잭션 관리 선택
ORM에 따라 트랜잭션을 여는 위치와 확정 지점이 달라진다. 핵심은 같은 작업 단위를 하나의 성공 또는 실패로 묶는 것이다.
commit 또는 rollback
처리 단위
1
요청 진입
서비스 메서드가 주문, 결제, 재고처럼 함께 움직일 변경을 모은다.
2
트랜잭션 시작
TypeORM은 queryRunner, Prisma는 $transaction으로 경계를 만든다.
3
변경 실행
모든 쓰기는 같은 매니저 또는 같은 콜백 안에서 처리한다.
4
결과 확정
전부 성공하면 commit, 하나라도 실패하면 rollback한다.