Transaction boundary

NestJS 트랜잭션 관리 선택

ORM에 따라 트랜잭션을 여는 위치와 확정 지점이 달라진다. 핵심은 같은 작업 단위를 하나의 성공 또는 실패로 묶는 것이다.

commit 또는 rollback

처리 단위

1

요청 진입

서비스 메서드가 주문, 결제, 재고처럼 함께 움직일 변경을 모은다.

2

트랜잭션 시작

TypeORM은 queryRunner, Prisma는 $transaction으로 경계를 만든다.

3

변경 실행

모든 쓰기는 같은 매니저 또는 같은 콜백 안에서 처리한다.

4

결과 확정

전부 성공하면 commit, 하나라도 실패하면 rollback한다.